Upload
gotzon
View
43
Download
3
Embed Size (px)
DESCRIPTION
Mérés és adatgyűjtés. Mérőrendszerek programozása. Mingesz Róbert. 2014. április 10. v4.0. Tartalom. Valós idejű rendszerek Programozható eszközök Programozási környezetek. Valós idejű rendszerek. Valós idejű rendszer. Megbízhatóan válaszol egy eseményre - PowerPoint PPT Presentation
Citation preview
Mérés és adatgyűjtés
Mérőrendszerek programozása
Mingesz Róbert
2015.04.22.
2
Valós idejű rendszerek
3
Valós idejű rendszer
• Megbízhatóan válaszol egy eseményre
• Műveleteket garantált időn belül elvégez
4
Fogalmak
• Ciklusidő / válaszidő
• Jitter (bizonytalanság)
• Determinizmus(konzisztens válasz és válaszidő)
• Determinisztikus feladat(mindig időben kell végezzen)
• Prioritás
Hagyományos OS
• A processzoridő megoszlik a programok között
• Háttérfeladatok megszakíthatják a kritikus programokat• Vírusírtók
• Hálózatkezelés...
• Magas jitter
• Nem determinisztikus
Valós idejű operációs rendszerek
• A magas prioritású feladatok lesznek először végrehajtva
• Magas megbízhatóság
• Általában nincs UI
• Példák:• NI ETS
• Wind River VxWorks
• Valód idejű Linux
7
Programozható eszközök
8
Ember
• Válaszidő: 1-2 s
• Magas jitter
• Konzisztens válasz ?
• Üzemidő: 8/5
• Motiváció → öntanuló, optimalizálás
• Objektumorientált
9
PC
• Válaszidő: ~ 100 ms
• Magas jitter
• Általában konzisztens válasz
• Üzemidő: 24/7, 1-5 éves élettartam
• „Korlátlan” erőforrások
• GUI, felhasználói interfész
• Alacsony ár
• Nagy méret
10
Ipari PC
• Válaszidő: ~ 100 ms
• Üzemidő: 24/7, 5-10 éves élettartam
• Környezeti hatásokkal szemben ellenálló
• „Korlátlan” erőforrások
• GUI, felhasználói interfész
• Magas ár
11
Egylapos PC-k
• Raspberry Pi ?
• BeagleBone
• Ipari egylapos PC-k
• Windows, Linux, Android, ...
• Bő erőforrások(< 1 GHz, RAM < 1 GB, Flash < 32 GB)
• Válaszidő, élettartam ?
• Kis méret, beágyazható
12
Mikrovezérlők
• 8 bit (pl. 8051)
• 32 bit (pl. ARM cortex m4)
• Korlátozott erőforrások• Memória, flash < 128 kB
• Órajel < 100 MHz
• Alacsony fogyasztás (pl. 30 mW, 3 µW alvó mód)
• Válaszidő ~ µs (rendszerfüggő, determinisztikus)
• Alacsony ár, beágyazható
13
DSP (digitális jelprocesszor)
• 16-32 bit
• Jelfeldolgozási feladatokra optimalizálva
• Lebegőpontos számolás, párhuzamos műveletek
• 1 órajeles végrehajtása a műveleteknek
• 400 MHz
• 2,4 GFLOPS (1 mag)
• 1,43 W
14
FPGA (field-programmable gate array)
• Programozható logikai eszköz(20-200 ezer cella, 1 Mbit memória, < 500 MHz)
• Párhuzamos végrehajtás
• Magas megbízhatóság
• Válaszidő < 100 ns(determinisztikus)
• VHDL
• Kisebb rokonok: CPLD, PAL
15
PLC (Programozható logikai vezérlő)
• Szabványosított be és kimenetek (ipari)
• Moduláris felépítés
• Válaszidő: 10-100 ms (determinisztikus)
• Magas megbízhatóság, 10-20 éves élettartam
16
cRIO
• Változatos I/O opciók
• Válaszidő < 1µ, determinisztikus
• Jelentős mennyiségű erőforrás(< 1,3 GHz, RAM < 2 GB, Flash < 32 GB, FPGA)
17
Mobiltelefon, Tablet
• Elsősorban mérési eredmények megjelenítése, mérések felügyelete
• Kevés alkalmazás, sok lehetőség
18
Számábrázolás
19
Számábrázolások
• Egész számok• Előjeles / előjel nélküli
• 8 / 16 / 32 / 64 (/ 12 / 14 / 24 / N ) bit
• Lebegőpontos számok• single / double / extended
• Fixpontos számok• A bináris pont (randix point ~ tizedes pont) egy
előre meghatározott helyi értéken van
• Számolás hasonló az egész számokhoz
20
Fixpontos számok konfigurálása
21
Számolási idő 8 bit-es mikrovezérlőn*
8 bit
egész
16 bit
egész
32 bit
egész
32 bit
lebegőpontos
Összeadás 7 13 25 293
Szorzás 12 67 185 308
Osztás 33 601 1105 1580
Modulo
képzés
34 314 492 nem
támogatott
*C8051 F410, órajel ciklusban, egy adott számkombinációra
22
Programozási nyelvek és környezetek
23
Assembly
• A hardver összes képessége kihasználható
• Maximális hatékonyság
• Magas tudást igényel
• Hosszú fejlesztési idő
• Felhasználás: mikrovezérlők optimalizált rutinjai
24
C
• Általános célú programozási nyelv
• A legtöbb eszköz programozható segítségével
• Alacsony szintű hatékony kód készíthető
• Eszköztől függő variációk és képességek
25
C#
• Elsősorban PC program
• Platformfüggő
• Korlátozott eszközhasználat, analíziskönyvtár
26
JAVA
• PC, beágyazott rendszerek, mobil eszközök
• Platform független
• Korlátozott eszközhasználat, analíziskönyvtár
27
JavaScript, PHP
• Webes interfészek készítése
28
Matlab
• Cél: numerikus számítások elvégzése
• Vezérlési feladatok (pl. PID szabályozás)
• Eszközvezérlés
29
Simulink
• Adatvezérelt grafikus programozás
• Modellezés, szimuláció
• Valós eszközök vezérlése
• C kódgenerálás
30
A LabVIEW fejlesztőkörnyezet
31
Példa GUI
32
Példa kód
33
A LabVIEW környezet
• Fejlesztő: National Instrumentshttp://www.ni.com/labview/
• Oktatóanyagokhttp://www.ni.com/gettingstarted/labviewbasics/ http://zone.ni.com/wv/app/doc/p/id/wv-3220 http://zone.ni.com/wv/app/doc/p/id/wv-3221
Miért 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
34
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)
35
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
36
37
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
38
Spagetti VI
39
Példák a LabVIEW alkalmazására
40
Elektronika
• Tesztelés• Félvezetők működése
• Audió áramkörök tesztelése
• Videó
• Rádiófrekvenciás áramkörök
• Vezetéknélküli kommunikáció
• Teljesítményelektronikák vezérlése
• http://www.ni.com/solutions/
41
Járműipar
• Gyors prototípusfejlesztés
• Hardware-in-the-Loop
• Vezérlőelektronikák fejlesztése
• Tesztelés• Végső termék tesztelése
• Valós idejű mérések
• http://www.ni.com/solutions/
42
Hadi és repülőgépipar
• Repülés
• Katonai kommunikáció
• Radar
• Űrprogramok
• Automatizált tesztrendszerek
• http://www.ni.com/solutions/
43
SpaceX
44
További területek
• Olajipar
• Fényelemek, szélerőművek
• Egészség• Műszerek tesztelése
• Tudomány
• http://www.ni.com/solutions/
45
Pl. mosógép fejlesztése
• http://sine.ni.com/cs/app/doc/p/id/cs-14447
46
Big Physics - CERN
• Nem megfelelő irányú részecskék elfogása
• 120 valós idejű PXI rendszer
• http://sine.ni.com/cs/app/doc/p/id/cs-10795
47
Big Physics - TOKAMAK
• Valós idejű mérések
• Szabályozás
• http://www.ni.com/white-paper/6436/en
48
Lego
49
A LabVIEW programozás alapjai
50
Kezdőablak
51
Virtual Instrument – VI
52
Projektek
53
Controls palette
• Előlapi elemek
• Numeric input / output
• Boolean: nyomógomb, LED
• String bemenet/ kimenet
• Grafikonok
• …
54
Functions palette
• Block diagram elemei
• Programozási struktúrák
• Tömbműveletek
• Numerikus operátorok
• Boolean, String
• Összehasonlítás…
55
Context help
• A kurzor alatt lévő elem rövid sugúja
• Aktiválás: CTRL+H
56
Tools palette
• Alapbeállítás:automatic tool selection(ajánlott)
Leggyakrabban használt:
• Manipulate
• Select and edit
• Modify text
• Create wire
57
Adattípusok
• Numeric:• Egész, lebegőpontos, komplex, fixpontos
• Boolean
• String and fájl útvonal
• Referencia
• Objektumok
• Tömbök
• Clusterek (struktúrák)
58
Numerikus adattípusok
59
Numerikus típus megváltoztatása
60
Numerikus paletta
61
További funkciók: Mathematics
While Loop
int i = 0;
int stop = 0;
do {
// Some code
i++;
} while (!stop);
62
For Loop
int i;
int N = count;
for (i = 0; i < N; i++) {
// Some Code
}
63
While Loop
int i;
int N = count;
int stop = 0;
for (i = 0 ; i < N; i++) {
//Some code
if (stop) {
break;
}
}
64
Previous iteration: Feedback node
int i;
int N = count;
int x = 0;
for (ind i = 0; i < N; i++) {
x = x + i;
}
65
Similar option: Shift register
int i;
int N = count;
int x = 0;
for (ind i = 0; i < N; i++) {
x = x + i;
}
66
Adatvezérelt programozás
• Párhuzamos végrehajtás
• Egy csomópont akkor hajtódik végre, amikor az összes bemenet a rendelkezésre áll
• A csomópont akkor adja vissza a végeredményt, amikor befejezte a futást
• A végrehajtást az adatok vezetékeken történő áramlása határozza meg
67
Adatvezérelt programozás: példa
68
Sekvencia
69
70
LabVIEW toolkit-ek
71
Programozási lehetőségek
72
MathScript RT Module
• MATLAB kódok futtatása
• 700 beépített funkció
• GUI
• Valós idejű rendszerek
• http://sine.ni.com/np/app/main/p/docid/nav-104/lang/hu/fmid/2031/
73
Control Design and Simulation Module
• Simulink jellegű programozás
• http://sine.ni.com/nips/cds/view/p/lang/hu/nid/209850
74
Application Builder for Windows
• Önálló* programok készítése
• Telepítőfájlok készítese
• .net dll-ek
• Forráskód elrejtése
*: futtatókörnyezetet fel kell telepíteni
75
Robotics Module
• Valódi hardverek vezérlése
• 3D szimulációs környezet
• http://sine.ni.com/nips/cds/view/p/lang/hu/nid/209856
76
LEGO MINDSTORMS NXT Module
• Lego NXT programozása LabVIEW használatával
• http://www.ni.com/pdf/manuals/372574c.pdf
77
Vision Development Module
• 3D algoritmusok
• Valós idejű felismerés
• http://sine.ni.com/np/app/main/p/docid/nav-104/lang/hu/fmid/2037/
78
PID and Fuzzy Logic Toolkit
• P, PI, PD, and PID szabályozások
• Fuzzy szabályozások
• Automatikus hangolás (online/offline)
• http://sine.ni.com/nips/cds/view/p/lang/hu/nid/209054
79
Statechart Module
• Állapotvezérelt gépek készítése
• http://sine.ni.com/nips/cds/view/p/lang/hu/nid/209857
80
Real-Time Module
• Valós idejű rendszerek vezérlése
• Önálló műszerek, vezérlőkpl. cRIO, PXI, ...
• Real-Time Execution Trace Toolkit• Debugging
• Profiling
• http://sine.ni.com/np/app/main/p/docid/nav-104/lang/hu/fmid/2032/
81
FPGA Module
• FPGA programozása grafikus nyelven
• http://sine.ni.com/np/app/main/p/docid/nav-104/lang/hu/fmid/2030/
82
Touch Panel Module
• HMI panelek programozása
• http://sine.ni.com/nips/cds/view/p/lang/hu/nid/209858
83
Datalogging and Supervisory Control Module
• OPC szerver/kliens
• HMI
• NI hardver
• PLC
• ...
• http://sine.ni.com/nips/cds/view/p/lang/hu/nid/209851
84
Adaptive Filter Toolkit
• Különböző adaptív szűrő algoritmusok
• Szimuláció
• FPGA kód
• http://sine.ni.com/nips/cds/view/p/lang/hu/nid/205382
85
... vége ...Köszönöm a figyelmet