LabVIEW Academy. 6. óra state machine



Hasonló dokumentumok
eseményvezérelt megoldások Vizuális programozás 5. előadás

LabView Academy. 4. óra párhuzamos programozás

Széchenyi István Egyetem

5. Példa: Olvasás szöveges fájlból (program3_1.vi)

LabVIEW példák és bemutatók KÉSZÍTETTE: DR. FÜVESI VIKTOR

Summer of LabVIEW The Sunny Side of System Design

Mechatronika és mikroszámítógépek 2017/2018 I. félév. Bevezetés a C nyelvbe

Programozás alapjai C nyelv 5. gyakorlat. Írjunk ki fordítva! Írjunk ki fordítva! (3)

Mechatronika II (BMEGEFOAMM2)

Programozás alapjai C nyelv 4. gyakorlat. Mit tudunk már? Feltételes operátor (?:) Típus fogalma char, int, float, double

16F628A megszakítás kezelése

AWK programozás, minták, vezérlési szerkezetek

AWK programozás, minták, vezérlési szerkezetek

Programozás II. ATM példa Dr. Iványi Péter

Bevezetés a programozásba I.

Csomag. Adatbázis-objektum Programozási eszközök gyűjteménye Két részből áll. specifikáció törzs (opcionális)

LabView Academy. 3. óra - cluster, for ciklus, while ciklus, DAQ alapok

Algoritmizálás + kódolás C++ nyelven és Pascalban

Objektumorientált Programozás III.

Mapping Sequencing Reads to a Reference Genome

Tervminták a valósidejű gyakorlatban

Mérés és adatgyűjtés Laboratóriumi jegyzet

Szimulációs technológiák NGB_IN040_1

Programozás 6. Dr. Iványi Péter

Táblakezelés: Open SQL Internal table. Tarcsi Ádám: Az SAP programozása 1.

Nagy HF u tmutato 2011/2012 II. fe le v

discosnp demo - Peterlongo Pierre 1 DISCOSNP++: Live demo

Kivételek kezelése (exception handling) Hibakezelés old style. Kivételkezelés

Tartalom Kontextus modellek Viselkedési modellek Adat-modellek Objektum-modellek CASE munkapadok (workbench)

Avery Design Pro 4.0

Az SQL*Plus használata

Mit tudunk már? Programozás alapjai C nyelv 4. gyakorlat. Legnagyobb elem keresése. Feltételes operátor (?:) Legnagyobb elem keresése (3)

A C programozási nyelv I. Bevezetés

Programozás alapjai 9.Gy: Struktúra 2.

C programozási nyelv

A C programozási nyelv I. Bevezetés

SQL*Plus. Felhasználók: SYS: rendszergazda SCOTT: demonstrációs adatbázis, táblái: EMP (dolgozó), DEPT (osztály) "közönséges" felhasználók

Programozási alapismeretek beadandó feladat: ProgAlap beadandó feladatok téma 99. feladat 1

ELTE, Informatikai Kar december 12.

Algoritmizálás + kódolás C++ nyelven és Pascalban

Tuplet Tool Hangjegycsoport eszköz

Programozás II. 2. Dr. Iványi Péter

7. gyakorlat. Fájlkezelés IO haladó Függvények haladó

Objektumorientált programozás Pál László. Sapientia EMTE, Csíkszereda, 2014/2015

Egészítsük ki a Drupal-t. Drupal modul fejlesztés

Függvények. Programozás I. Hatwágner F. Miklós november 16. Széchenyi István Egyetem, Gy r

Programozás alapjai. (GKxB_INTM023) Dr. Hatwágner F. Miklós szeptember 27. Széchenyi István Egyetem, Gy r

Tanúsítvány áttekintése

The modular mitmót system. DPY kijelző kártya C API

Torna. A torna.csv UTF-8 kódolású állományban soronként egy versenyző eredményeit tároljuk. Az adatokat pontosvessző választja el egymástól.

Data Integrátorok a gyakorlatban Oracle DI vs. Pentaho DI Fekszi Csaba Ügyvezető Vinnai Péter Adattárház fejlesztő február 20.

1. mérés - LabView 1

Mintavételes szabályozás mikrovezérlő segítségével

Powershell 2. gyakorlat

Programozás alapjai C nyelv 8. gyakorlat. Mutatók és címek (ism.) Indirekció (ism)

Függvények. Programozás alapjai C nyelv 7. gyakorlat. LNKO függvény. Függvények(2) LNKO függvény (2) LNKO függvény (3)

Programozás alapjai C nyelv 7. gyakorlat. Függvények. Függvények(2)

Újrakonfigurálható eszközök

Bevezetés a programozásba I 4. gyakorlat. PLanG: Szekvenciális fájlkezelés. Szekvenciális fájlkezelés Fájlok használata

Modellinformációk szabványos cseréje. Papp Ágnes, Debreceni Egyetem EFK

Automatikus tesztgenerálás modell ellenőrző segítségével

Információs Technológia

Adatbázis Rendszerek II. 5. PLSQL Csomagok 16/1B IT MAN

A PROGAMOZÁS ALAPJAI 1. Függvény mint függvény paramétere. Függvény mint függvény paramétere. Függvény mint függvény paramétere

MSP430 programozás Energia környezetben. LED kijelzok második rész

e) Írj kódrészletet, mely az int d változó utolsó előtti bitjét 1-re állítja.

LabView Academy. Alapismeretek II.

Jelgenerálás virtuális eszközökkel. LabVIEW 7.1

LabVIEW mérési jegyzőkönyv

Szoftver-technológia II. Tervezési minták. Irodalom. Szoftver-technológia II.

Élettartam teszteknél alkalmazott programstruktúra egy váltóvezérlő példáján keresztül

RTCM alapú VITEL transzformáció felhasználó oldali beállítása Spectra Precision Survey Pro Recon szoftver használata esetén

Szkriptnyelvek II. Perl programok

Gyártórendszerek modellezése: MILP modell PNS feladatokhoz

Programozás alapjai gyakorlat. 4. gyakorlat Konstansok, tömbök, stringek

Operációs rendszerek gyak.

Algoritmusok Tervezése. 4. Előadás Visual Basic 1. Dr. Bécsi Tamás

Bevezetés a C programozási nyelvbe. Az Általános Informatikai Tanszék C nyelvi kódolási szabványa

A szerzõrõl... xi Bevezetés... xiii

Pénzügyi algoritmusok

Funkcionális Nyelvek 2 (MSc)

HÁZI FELADAT PROGRAMOZÁS I. évf. Fizikus BSc. 2009/2010. I. félév

Tranzakciókezelés PL/SQL-ben

Programozás C nyelven FELÜLNÉZETBŐL elhullatott MORZSÁK. Sapientia EMTE

Miről lesz ma szó? A PROGAMOZÁS ALAPJAI 1. Dinamikus változók. Dinamikus változók. Dinamikus változók. Dinamikus változók. 7.

LÉTRADIAGRAM FORDÍTÓK ELMÉLETE PLC VEZÉRLÉSEK SZÁMÁRA II.

Típusok és konstansok

BASH SCRIPT SHELL JEGYZETEK

hiányzott szeptemberben vagy A tanuló nem hiányzott szeptemberben szöveget

AWK programozás Bevezetés

BASH script programozás II. Vezérlési szerkezetek

Programozás I. Első ZH segédlet

7. gyakorlat Sorozatok, Fájlkezelés

TMS370 EEPROM PROGRAMOZÓ Felhasználói kézikönyv

PHP alapjai, bevezetés. Vincze Dávid Miskolci Egyetem, IIT

Kézikönyv ABAS-TOOLS használata

Bevezetés a programozásba I 4. gyakorlat. PLanG: Szekvenciális fájlkezelés

A szoftverfejlesztés eszközei

Mutatók és címek (ism.) Programozás alapjai C nyelv 8. gyakorlat. Indirekció (ism) Néhány dolog érthetőbb (ism.) Változók a memóriában

Első lépések. File/New. A mentés helyét érdemes módosítani! Pl. Dokumentumok. Fájlnév: pl. Proba

Átírás:

LabVIEW Academy 6. óra state machine

Tartalom Állapotgép Típusdefiníció Fájlok 2 feladat: egy könnyebb és egy kicsit gyakorlatiasabb 2

Szekvenciális programozás Alapértelmezetten nincs szekvenciális futtatás LabVIEW környezetben, habár sok feladat ilyen. Itt semmi sem kényszeríti a szekvenciális végrehajtást.

Sorrendiség Error clusterek és refnumok kötése a sorrendiség miatt. Még itt se a várt eredményt kapjuk.

Sequence Structure Sequence structure egy vezérlési struktúra, minden frame akkor hajtódik csak végre ha az előtte lévő bemeneti elemeken minden adat rendelkezésre áll» dataflow Ez a megoldás bár működik, még nem a legjobb

Egy fokkal jobb megoldás

Case struktúra és Error cluster A legjobb megoldás

State Tervezési technikák - Állapotgép Az állapotgép egy gyakran használt tervezési minta (design pattern), A lényege, hogy az adott alrendszer csak egy állapotban lehet egyszerre, ebből az átmenetek és az egyes állapotok tevékenységei pontosan definiáltak. While Loop Type-Defined Enum Shift Register Case Structure

State machine - állapotgép Az állapotgép egy gyakran használt tervezési minta (design pattern), A lényege, hogy az adott alrendszer csak egy állapotban lehet egyszerre, ebből az átmenetek és az egyes állapotok tevékenységei pontosan definiáltak. Megadható állapot és tevékenységtáblás, UML diagram és nem szabványos módokon. http://en.wikipedia.org/wiki/finite-state_machine http://en.wikipedia.org/wiki/uml_state_machine 9

C nyelven state machine implementáció //state machine - állapotgép #include <stdio.h> typedef enum {normal,komment,cs_var,p_var} allapotok; int main(void){ int c; allapotok a = normal; //CTR+Z-ig while((c=getchar())!=eof){ switch (a){ case normal: if(c!='/')putchar(c); else a = cs_var; break; } case cs_var: if(c=='*') a = komment; else{ putchar('/'); if(c!='/'){ putchar(c); a=normal; } } break; case komment: if(c=='*') a = p_var; break; case p_var: if(c=='/') a = normal; else if(c!='*') a = komment; break; } } Forrás: A programozás alapjai - Pohl László, Budapest, 2010 10

Állapottábla Komment /* */ szűrő Állapot * / egyéb normál normál csillagra vár normál csillagra vár megjegyzés csillagra vár normál megjegyzés perre vár megjegyzés megjegyzés perre vár perre vár normál megjegyzés Tevékenységtábla Állapot * / egyéb normál másol nem másol másol csillagra vár nem másol előző / kiírása, nem másol előző / kiírása, másol Forrás: A programozás alapjai - Pohl László, Budapest, 2010 11

Komment /* */ szűrő egyéb, '*' '/' egyéb, '/' '*' normal cs_var megj p_var '/' '*' egyéb egyéb '*' '/' Az implementációba be lehet tenni egy plusz állapotot - végállapotot -, amibe bármikor elérhetünk EOF hatására. 12

Tervezési technikák - Állapotgép While ciklus Case struktúra (különböző állapotbeli viselkedés) Shift regiszter (állapot tárolása) File New VI From Template Frameworks Design Pattern State Machine 13

Állapotgép start Alap Mérés Led villogtatás end 14

Mentés lehetőségei Csv/Txt (szöveges) Tdms (labview és excel is támogatja) Report generation toolkit

Fájlműveletek Megnyit/ Létrehoz/ Cserél Ír/Olvas Lezár Hibakezelés 16

Fájlok Binary Spreadsheet (ASCII) Pro s Fast, Small Footprint Flexible, Exchangeable Con s Not self describing Requires strict control over format Limited Capacity No Structure (Flat 2D Table) XML Flexible Flexible TDMS: Combines XML + Binary Flexible Small footprint Easy to create (Complete API) Easy to extend, customize Designed for measurement data

Write to File Example Open/Create/Replace opens the existing file TEST1.DAT and generates refnum and error cluster Write File writes the data Close File closes the file Simple Error Handler checks for errors 18

Reading Data from a File Open/Create/Replace opens the file Read File reads the specified number of bytes from the file Close File closes the file Simple Error Handler checks for errors 19

Formatting a Spreadsheet String Spreadsheets are popular tools for data handling and analysis There are many formats for spreadsheet data. One of the most popular is tabdelimited: Columns are separated by a tab character Rows are separated by an end-of-line character A spreadsheet yields: Tab End of Line 20

Creating a Spreadsheet File Can replace Format Into String and Write File with Format Into File in above example 21

Típus definíciók.ctl Advenced >> Customize Kontrollok, konstansok 22

8-1 feladat Egyedi felsorolás típus használatával hozzunk létre egy állapotgépet. Létre kell hoznunk egy állapotgéppel vezérelt felhasználói felület sablont. Az állapotgépnek lehetővé kell tennie, hogy a felhasználó tetszőeges sorrendben elindíthassa az 1. vagy a 2. folyamatot. Mivel a későbbiekben további folyamatok is beépülhetnek az alkalmazásba, az állapotgépünket bővíthetőre kell terveznünk. 23

8-1 feladat 24

Led: GND / AO0 Fotóellenállás: GND / +5V / AI0 25

Állapotgép start Alap Mérés Led villogtatás end 26

Példa06_1 állapotgép Készítsen állapotgépet, amely egy gép ki és bekapcsolását képes kezelni. Bekapcsolt állapotban jelezze ki a bekapcsolás óta eltelt időt. Ha bekapcsolt állapotban nyomjuk le a Start gombot, jelezze ki, hogy már be van kapcsolva a gép. 27

Példa06_2 állapotgép Készítsen állapotgépet, amely egy kávé automatát modellez. Lehessen bele pénzt bedobni és 80 egység után kávét, 120 egység után cappuchinot ad gombnyomásra. Ha nincs elég pénzünk azt is jelezze egy eseményeket gyűjtő stringben. Előbb itt is tervezzünk, utána programozzunk. 28

Példa06_3 csv olvasás Készítsen programot mely képes beolvasni a Szenergy team CSV formátumban tárolt telemetriás adatait egy double tömbbe. 29

Fotóellenállásos 30

Fotóellenállásos 31

Fotóellenállásos 32

Köszönöm a figyelmet!