Labview academy
Sponsored Links
This presentation is the property of its rightful owner.
1 / 31

LabView Academy PowerPoint PPT Presentation


  • 90 Views
  • Uploaded on
  • Presentation posted in: General

LabView Academy. 4. óra. Ellenőrző kérdések. Hogyan lehet letiltani az automatikus hibakezelés funkciót ? Engedélyezzük az Execution highlighting – ot b) A subVI error out cluster-jét bekötjük egy másik subVI error in cluster-jébe

Download Presentation

LabView Academy

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


LabViewAcademy

4. óra


Ellenőrző kérdések

Hogyan lehet letiltani az automatikus hibakezelés funkciót?

Engedélyezzükaz Execution highlighting –ot

b) A subVIerror out cluster-jét bekötjük egy másik subVIerrorincluster-jébe

c) Az Errorlist ablakban bejelöljük a Show Warningsjelölőnégyzetet


Ellenőrző kérdések

Az alábbiak közül melyek az errorcluster elemei?

a) Status: Boolean

b) Error: String

c) Code: 32-bit integer

d) Source: String


String

  • Gyakorlás: Lva.04.strings.docx

  • pelda08_build_string.vi


Párhuzamosság

Két különböző frekvenciájú koszinusz jel, két ciklusban, egy stop gombbal leállítva


Párhuzamosság

Helyes-e a következő elgondolás?

Nem!


Párhuzamosság

Helyes-e a következő elgondolás? (Változók)

pelda05_local_variables.vi

Igen!


Párhuzamosság

  • Adatfolyam architektúra

    • Az adatfolyam határozza meg a végrehajtási sorrendet

    • Jól párhuzamosítható

  • Adatátadás a párhuzamos programrészek között

    • Adatfüggőséget okoz (adatfolyam)

    • Elveszik a párhuzamosság

  • Változók: blokk diagram elemek, amelyek lehetővé teszik adatok beolvasását, illetve tárolását.


Változók

  • Lokális változó: Front panel kontrolban/indikátorban tárolja az értéket, csak egy VI-on belül használható

  • Globális változó:Speciális adattárolóban tárol, adatokat így több VI számára elérhető

  • Funkcionális globális:Whileciklus inicializálatlan Shift regiszterében tárol értéket

  • Shared: több eszköz és rendszer között hálózati megosztás


Lokális változók

  • Létrehozása:

    • Jobb klikk egy kontrol/indikátor terminálon >> Create>> Local variable

    • Functionspaletta

  • Írása/olvasása:

    • Jobb klikk >>Change to Read/Write


Globális változók

  • Adatcsere különböző VI-ok között

  • Speciális VI, aminek csak Front panelje van

  • Létrehozása:

    • Functionspaletta

    • A globális változó Front paneljén elhelyezett egy/több objektum >> összetett változó

  • Írása/olvasása:

    • Összetett változó esetén az al-változókiválasztása

    • Changeto Read/Write


Single-process shared variable

  • Adatcsere különböző VI-ok között

  • Létrehozása:

    • Project explorer >> My computer, New >> Variable


Single-process shared variable

  • Adatcsere különböző VI-ok, sőt különböző rendszerek között hálózaton

  • Project Explorer


A változók túlzott használatának veszélyei

  • A változók nem részei az adatfolyam architektúrának

    • A blokk diagram nehezen olvashatóvá válik a használatukkal

  • Túlzott használatuk rontja a VI teljesítményét


Ellenőrző kérdések

Mi lesz az értéke?

a) Szám=(Szám*5)+2

b) Szám=(Szám*2)+5

c) Szám=Szám*5

d) Szám=Szám+2

e) A kiértékelési sorrend dönt


Feladat

  • pelda07_local_variables_order.png

  • Snippet


Funkcionális globális változók

  • For, vagy While ciklusok inicializálatlan shiftregisztereiben tárolja az adatot

    • Művelet bemenet (set/get, read/write)

    • Adat bemenet

  • Bonyolultabbadatstruktúrák (verem, sor) is megvalósíthatók így

  • Fájlok, műszerek, DAQ eszközök hozzáférése is szabályozható ezzel

  • pelda06_functional_global_variable.zip


Versenyhelyzet

  • Több párhuzamosan futó program használja ugyanazt a megosztott erőforrást (változót)

    • Nehéz azonosítani és debuggolni

  • Elkerülése

    • Megosztott erőforrások korlátozása

    • Kritikus kódrészek védelme (pl. semaphor, funkc. globális változó)

    • Végrehajtásisorrend meghatározása


Controlling Shared Resources


Megosztott erőforrások

  • Minimalizáljuk a megosztott erőforrások alkalmazását

    • vagy legalább a megosztott erőforrások használóinak számát

    • ha sokan olvassák ugyanazt az erőforrást, az áltatában nemprobléma

    • ha sokan írják, az jelent problémát

  • Cél:

    • Egy írásjog

    • Jól definiált végrehajtási sorrend


Változók

Inicializálatlan változók az alapértelmezett értéket veszik fel. Ökölszabály: előbb inicializáljuk a változót, utána használjuk.


Kritikus kódrészlet

  • Definíció: az a kódrészlet, amely közben versenyhelyzet állhat elő

  • Kritikus kód védelme

    • Funkcionális globális változók: non reentrantsubVI, egyszerre csak egy helyről futtatható

    • Szemaforok


Szemafor használata a kritikus kódrészlet védelmére

Acquiresemaphore és Releasesemaphore közti rész védett


Ellenőrző kérdések

VI-okban érdemes gyakran változókat használni.

a) Igaz

b) Hamis


Ellenőrző kérdések

Az alábbiak közül melyek nem alkalmasak adatátvitelre?

a) Szemafor

b) Funkcionális globális változó

c) Lokális változó

d) Single-processshared változó


Ellenőrző kérdések

Az alábbiak közül melyek használhatók kizárólag projektben?

a) Lokális változó

b) Globális változó

c) Funkcionális globális változó

d) Single-processshared változó


Ellenőrző kérdések

Az alábbiak közül melyek nem használhatók különböző VI-okközti adatátadásra?

a) Lokális változó

b) Globális változó

c) Funkcionális globális változó

d) Single-processshared változó


Többhurkos tervezési technikák

Párhuzamos

  • Több független feladat párhuzamos végrehajtása

  • Kommunikáció a ciklusok között nem egyszerű (változók)


Többhurkos tervezési technikák

Master/Slave

  • Több független ciklus különböző sebességgel

  • Slave ciklus

    • Különböző frekvenciájú adatgyűjtési feladatok

  • Master ciklus

    • Felhasználói felület kezelése (inputok a felhasználótól)

  • Túl lassú Slave gondot okozhat


Többhurkos tervezési technikák

Producer/Consumer

  • Továbbfejlesztett adatmegosztás a Master/Slave-hez képest

  • Producer ciklus: Adatot „termel”

  • Consumer ciklus: Adatot „fogyaszt”

  • Kommunikáció egy soron keresztül -> nincs adatvesztés


Olvasnivaló

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

  • http://labviewwiki.org/Race_condition

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

  • http://digital.ni.com/public.nsf/allkb/A1BA7477550DBFDE862565BC006CD410

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


  • Login