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

Preview:

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

Recommended