85
Mérés és adatgyűjtés Mérőrendszerek programozása Mingesz Róbert 2015.04.22.

Mérés és adatgyűjtés

  • Upload
    gotzon

  • View
    41

  • 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

Page 1: Mérés és adatgyűjtés

Mérés és adatgyűjtés

Mérőrendszerek programozása

Mingesz Róbert

2015.04.22.

Page 2: Mérés és adatgyűjtés

2

Valós idejű rendszerek

Page 3: Mérés és adatgyűjtés

3

Valós idejű rendszer

• Megbízhatóan válaszol egy eseményre

• Műveleteket garantált időn belül elvégez

Page 4: Mérés és adatgyűjtés

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

Page 5: Mérés és adatgyűjté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

Page 6: Mérés és adatgyűjtés

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

Page 7: Mérés és adatgyűjtés

7

Programozható eszközök

Page 8: Mérés és adatgyűjtés

8

Ember

• Válaszidő: 1-2 s

• Magas jitter

• Konzisztens válasz ?

• Üzemidő: 8/5

• Motiváció → öntanuló, optimalizálás

• Objektumorientált

Page 9: Mérés és adatgyűjtés

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

Page 10: Mérés és adatgyűjtés

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

Page 11: Mérés és adatgyűjtés

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ó

Page 12: Mérés és adatgyűjtés

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ó

Page 13: Mérés és adatgyűjtés

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

Page 14: Mérés és adatgyűjtés

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

Page 15: Mérés és adatgyűjtés

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

Page 16: Mérés és adatgyűjtés

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)

Page 17: Mérés és adatgyűjtés

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

Page 18: Mérés és adatgyűjtés

18

Számábrázolás

Page 19: Mérés és adatgyűjté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

Page 20: Mérés és adatgyűjtés

20

Fixpontos számok konfigurálása

Page 21: Mérés és adatgyűjtés

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

Page 22: Mérés és adatgyűjtés

22

Programozási nyelvek és környezetek

Page 23: Mérés és adatgyűjtés

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

Page 24: Mérés és adatgyűjtés

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

Page 25: Mérés és adatgyűjtés

25

C#

• Elsősorban PC program

• Platformfüggő

• Korlátozott eszközhasználat, analíziskönyvtár

Page 26: Mérés és adatgyűjtés

26

JAVA

• PC, beágyazott rendszerek, mobil eszközök

• Platform független

• Korlátozott eszközhasználat, analíziskönyvtár

Page 27: Mérés és adatgyűjtés

27

JavaScript, PHP

• Webes interfészek készítése

Page 28: Mérés és adatgyűjtés

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

Page 29: Mérés és adatgyűjté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

Page 30: Mérés és adatgyűjtés

30

A LabVIEW fejlesztőkörnyezet

Page 31: Mérés és adatgyűjtés

31

Példa GUI

Page 32: Mérés és adatgyűjtés

32

Példa kód

Page 33: Mérés és adatgyűjtés

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

Page 34: Mérés és adatgyűjtés

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

Page 35: Mérés és adatgyűjtés

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

Page 36: Mérés és adatgyűjtés

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

Page 37: Mérés és adatgyűjtés

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

Page 38: Mérés és adatgyűjtés

38

Spagetti VI

Page 39: Mérés és adatgyűjtés

39

Példák a LabVIEW alkalmazására

Page 40: Mérés és adatgyűjtés

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/

Page 41: Mérés és adatgyűjtés

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/

Page 42: Mérés és adatgyűjtés

42

Hadi és repülőgépipar

• Repülés

• Katonai kommunikáció

• Radar

• Űrprogramok

• Automatizált tesztrendszerek

• http://www.ni.com/solutions/

Page 43: Mérés és adatgyűjtés

43

SpaceX

Page 44: Mérés és adatgyűjtés

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/

Page 45: Mérés és adatgyűjtés

45

Pl. mosógép fejlesztése

• http://sine.ni.com/cs/app/doc/p/id/cs-14447

Page 46: Mérés és adatgyűjtés

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

Page 47: Mérés és adatgyűjtés

47

Big Physics - TOKAMAK

• Valós idejű mérések

• Szabályozás

• http://www.ni.com/white-paper/6436/en

Page 48: Mérés és adatgyűjtés

48

Lego

Page 49: Mérés és adatgyűjtés

49

A LabVIEW programozás alapjai

Page 50: Mérés és adatgyűjtés

50

Kezdőablak

Page 51: Mérés és adatgyűjtés

51

Virtual Instrument – VI

Page 52: Mérés és adatgyűjtés

52

Projektek

Page 53: Mérés és adatgyűjtés

53

Controls palette

• Előlapi elemek

• Numeric input / output

• Boolean: nyomógomb, LED

• String bemenet/ kimenet

• Grafikonok

• …

Page 54: Mérés és adatgyűjtés

54

Functions palette

• Block diagram elemei

• Programozási struktúrák

• Tömbműveletek

• Numerikus operátorok

• Boolean, String

• Összehasonlítás…

Page 55: Mérés és adatgyűjtés

55

Context help

• A kurzor alatt lévő elem rövid sugúja

• Aktiválás: CTRL+H

Page 56: Mérés és adatgyűjtés

56

Tools palette

• Alapbeállítás:automatic tool selection(ajánlott)

Leggyakrabban használt:

• Manipulate

• Select and edit

• Modify text

• Create wire

Page 57: Mérés és adatgyűjtés

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)

Page 58: Mérés és adatgyűjtés

58

Numerikus adattípusok

Page 59: Mérés és adatgyűjtés

59

Numerikus típus megváltoztatása

Page 60: Mérés és adatgyűjtés

60

Numerikus paletta

Page 61: Mérés és adatgyűjtés

61

További funkciók: Mathematics

Page 62: Mérés és adatgyűjtés

While Loop

int i = 0;

int stop = 0;

do {

// Some code

i++;

} while (!stop);

62

Page 63: Mérés és adatgyűjtés

For Loop

int i;

int N = count;

for (i = 0; i < N; i++) {

// Some Code

}

63

Page 64: Mérés és adatgyűjtés

While Loop

int i;

int N = count;

int stop = 0;

for (i = 0 ; i < N; i++) {

//Some code

if (stop) {

break;

}

}

64

Page 65: Mérés és adatgyűjtés

Previous iteration: Feedback node

int i;

int N = count;

int x = 0;

for (ind i = 0; i < N; i++) {

x = x + i;

}

65

Page 66: Mérés és adatgyűjtés

Similar option: Shift register

int i;

int N = count;

int x = 0;

for (ind i = 0; i < N; i++) {

x = x + i;

}

66

Page 67: Mérés és adatgyűjtés

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

Page 68: Mérés és adatgyűjtés

Adatvezérelt programozás: példa

68

Page 69: Mérés és adatgyűjtés

Sekvencia

69

Page 70: Mérés és adatgyűjtés

70

LabVIEW toolkit-ek

Page 71: Mérés és adatgyűjtés

71

Programozási lehetőségek

Page 72: Mérés és adatgyűjtés

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/

Page 73: Mérés és adatgyűjtés

73

Control Design and Simulation Module

• Simulink jellegű programozás

• http://sine.ni.com/nips/cds/view/p/lang/hu/nid/209850

Page 74: Mérés és adatgyűjtés

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

Page 75: Mérés és adatgyűjtés

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

Page 76: Mérés és adatgyűjtés

76

LEGO MINDSTORMS NXT Module

• Lego NXT programozása LabVIEW használatával

• http://www.ni.com/pdf/manuals/372574c.pdf

Page 77: Mérés és adatgyűjtés

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/

Page 78: Mérés és adatgyűjtés

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

Page 79: Mérés és adatgyűjtés

79

Statechart Module

• Állapotvezérelt gépek készítése

• http://sine.ni.com/nips/cds/view/p/lang/hu/nid/209857

Page 80: Mérés és adatgyűjtés

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/

Page 81: Mérés és adatgyűjtés

81

FPGA Module

• FPGA programozása grafikus nyelven

• http://sine.ni.com/np/app/main/p/docid/nav-104/lang/hu/fmid/2030/

Page 82: Mérés és adatgyűjtés

82

Touch Panel Module

• HMI panelek programozása

• http://sine.ni.com/nips/cds/view/p/lang/hu/nid/209858

Page 83: Mérés és adatgyűjtés

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

Page 84: Mérés és adatgyűjtés

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

Page 85: Mérés és adatgyűjtés

85

... vége ...Köszönöm a figyelmet