Grafikus folyamatmonitorizálás



Hasonló dokumentumok
Ipari mintavételes PID szabályozóstruktúra megvalósítása

1. Folyamatszabályozási alapok

ON-OFF (kétállású) hmérsékletszabályozás

Ipari kemencék PID irányítása

Egyszabadságfokú mechanikai rendszer irányítása nyílt hurkú vezérlés

Proporcionális hmérsékletszabályozás

I. LABOR -Mesterséges neuron

Függvények ábrázolása

Programozás alapjai. 6. gyakorlat Futásidő, rekurzió, feladatmegoldás

2) Írja fel az alábbi lineáris függvény grafikonjának egyenletét! (3pont)

6. Függvények. Legyen függvény és nem üreshalmaz. A függvényt az f K-ra való kiterjesztésének

Szélermvek termelésének eljelzése

1. Olvassuk be két pont koordinátáit: (x1, y1) és (x2, y2). Határozzuk meg a két pont távolságát és nyomtassuk ki.

A/D és D/A konverterek vezérlése számítógéppel

Villamos jelek mintavételezése, feldolgozása. LabVIEW 7.1

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

Matematikai programok

Adatelemzés SAS Enterprise Guide használatával. Soltész Gábor solteszgabee[at]gmail.com

Generátor differenciálvédelmi funkció blokk leírása

1. Metrológiai alapfogalmak. 2. Egységrendszerek. 2.0 verzió

Adatszerkezetek és algoritmusok

Numerikus integrálás

Két- és háromállású szabályozók. A szabályozási rendszer válasza és tulajdonságai. Popov stabilitási kritérium

Mérési adatgyűjtés és adatfeldolgozás 2. előadás

biometria II. foglalkozás előadó: Prof. Dr. Rajkó Róbert Matematikai-statisztikai adatfeldolgozás

Felvételi tematika INFORMATIKA

Robotok inverz geometriája

A fordítóprogramok szerkezete. Kódoptimalizálás. A kódoptimalizálás célja. A szintézis menete valójában. Kódoptimalizálási lépések osztályozása

A függvény kód szekvenciáját kapcsos zárójelek közt definiáljuk, a { } -ek közti részt a Bash héj kód blokknak (code block) nevezi.

1. Ábrázolja az f(x)= x-4 függvényt a [ 2;10 ] intervallumon! (2 pont) 2. Írja fel az alábbi lineáris függvény grafikonjának egyenletét!


Első egyéni feladat (Minta)

C programozási nyelv Pointerek, tömbök, pointer aritmetika


Algoritmusok és adatszerkezetek gyakorlat 06 Adatszerkezetek

Programozási technológia

Egyenletek, egyenlőtlenségek grafikus megoldása TK. II. kötet 25. old. 3. feladat

Irányítástechnikai alapok. Zalotay Péter főiskolai docens KKMF

Önhangoló PID irányítás

10. gyakorlat Struktúrák, uniók, típusdefiníciók

Az Informatika Elméleti Alapjai

Operációs rendszerek gyak.

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

Navigációs GPS adatok kezelése QGIS programmal (1.4 verzió) Összeállította dr. Siki Zoltán

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

Használati utasítás D11 Wifi termosztát DIMAT KFT.


Villamos jelek mintavételezése, feldolgozása. LabVIEW előadás

Digitális hangszintmérő

Informatika Rendszerek Alapjai

Szervomotor pozíciószabályozása

Folyamatirányítás labor 4. mérés Gyártósori szállítószalag modell irányítása Modicon M340 PLC-vel. Feladat leírás

MINTA Írásbeli Záróvizsga Mechatronikai mérnök MSc. Debrecen,

Matematikai programok

Mérési struktúrák

INFORMATIKAI ALAPISMERETEK

Labor leletező program

GIS adatgyűjtés zseb PC-vel

Láncolt lista. az itt adott nevet csak a struct deklaráción belül használjuk

Thermo1 Graph. Felhasználói segédlet

Android Commander Felhasználói kézikönyv

Szenzorhálózatok programfejlesztési kérdései. Orosz György

TERC V.I.P. hardverkulcs regisztráció

Programozás I. Matematikai lehetőségek Műveletek tömbökkel Egyszerű programozási tételek & gyakorlás V 1.0 OE-NIK,

Irányítástechnika GÁSPÁR PÉTER. Prof. BOKOR JÓZSEF útmutatásai alapján

PERREKUP DxxTx - HDK10 Rekuperátor vezérlő Használati Utasítás

8. Laboratóriumi gyakorlat INKREMENTÁLIS ADÓ

Alkalmazott modul: Programozás. Programozási tételek, rendezések. Programozási tételek Algoritmusok és programozási tételek

Operációs rendszerek. Az X Window rendszer

ROVER. Felhasználói kézikönyv V 1.0

11. gyakorlat Sturktúrák használata. 1. Definiáljon dátum típust. Olvasson be két dátumot, és határozza meg melyik a régebbi.

MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK MEGOLDÁSAI KÖZÉP SZINT Függvények

2. gyakorlat Mintavételezés, kvantálás

HÁZI FELADATOK. 2. félév. 1. konferencia Komplex számok

Egyszerű programozási tételek

A programozás alapjai 1 Rekurzió

Generikus osztályok, gyűjtemények és algoritmusok

ÁLLAPOTFÜGGŐ KARBANTARTÁST SEGÍTŐ INTEGRÁLT DIAGNOSZTIKAI RENDSZER. Dr. Nagy István, Kungl István. OKAMBIK Pécs, április

INFORMATIKAI ALAPISMERETEK

6. gyakorlat Egydimenziós numerikus tömbök kezelése, tömbi algoritmusok

MicLab Javítási útmutató

2. Elméleti összefoglaló

Programozás alapjai II. (7. ea) C++ Speciális adatszerkezetek. Tömbök. Kiegészítő anyag: speciális adatszerkezetek

Adatszerkezetek Hasító táblák. Dr. Iványi Péter

A tanulók gyűjtsenek saját tapasztalatot az adott szenzorral mérhető tartomány határairól.

Az Ön kézikönyve HP SCANJET 7490C SCANNER

Automatikai műszerész Automatikai műszerész

Beágyazott rendszerek fejlesztése laboratórium DSP fejlesztési technológiák

DIGITÁLIS TEREPMODELL A TÁJRENDEZÉSBEN

Adatszerkezetek 2. Dr. Iványi Péter

KIBŐVÍTETT RUGALMAS AUTOMATIZÁLÁS

Statisztikai programcsomagok gyakorlat Pót zárthelyi dolgozat megoldás

Analóg-digitál átalakítók (A/D konverterek)

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

INFORMATIKA javítókulcs 2016

MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK MEGOLDÁSAI KÖZÉPSZINT Függvények

5. Gyakorlat. struct diak {

Bevezetés a programozásba I.

Világítástechnikai mérés

Android Commander Felhasználói kézikönyv

Átírás:

Grafikus folyamatmonitorizálás 1. A gyakorlat célja Ipari folyamatok irányítását megvalósító program alapjának megismerése, fejlesztése, lassú folyamatok grafikus monitorizálásának megvalósítása. 2. Elméleti bevezet Az irányítási algoritmusok megvalósításának legelterjedtebb módja a szoftveres implementálás. Az irányítási algoritmust megvalósító függvények, eljárások általában egy nagyobb, ipari folyamatok felügyeletére, irányítására, monitorizálására kialakított szoftver része. Az irányítási algoritmus a folyamat mért kimenete és az elírt kimenet (alapjel) alapján számítja ki a beavatkozó jelet. A folyamat kimenetét analóg-digitális átalakítón keresztül olvassuk be. Az alapjelet ugyancsak analóg-digitális átalakítón keresztül olvashatjuk be vagy megadhatjuk számítógépes periférián keresztül is (például billentyzet segítségével). A második esetben nincs szükség analog-digitális átalakításra az alapjel esetében. A kiszámolt beavatkozó jelet digitális-analóg átalakítón keresztül küldjük a beavatkozó bemenetére. 2.1 A mintavételi periódus A mintavételes megvalósításnál szükségünk van egy ciklikusan (konstans periódusonként) meghívható függvényre. A konstans periódust mintavételi periódusnak nevezzük. Az ipari szoftver fszála ciklikusan megszakítódik és végrehajtódik az irányítási algoritmust megvalósító eljárás. Az eljárás fbb részei a következk: - a folyamat bemenetének beolvasása analóg-digitális átalakítóról. - a beavatkozó jel kiszámítása az alapjel és a folyamat bemenetének függvényében. - a beavatkozó jel kiküldése a digitális-analóg átalakítón keresztül. 1 Ábra: Mintavételes szabályozás megvalósítása

A mintavételi periódus megválasztása kritikus a szabályozás helyes mködésének biztosításához. Az irányítási feladatokban fix, konstans mintavételi periódust alkalmazunk. Mivel a mintavételi periódus gyakoriságával olvassuk be a folyamat kimenetét, ami alapján az irányítási algoritmus kiszámítja a vezérljelet, a periódust úgy kell megválasztani, hogy a beolvasott mintavételezett jel tartalmazza a folytonos jel jellegzetességeit. Így a periódus megválasztása minden esetben alkalmazásfügg. Gyors válaszú rendszerek esetében kis mintavételi periódust választunk, lassú válaszú rendszerek esetében nagyobb mintavételi periódus alkalmazható. A mintavételi periódus megválasztásánál empirikus, tapasztalati szabályok alkalmazhatóak: amennyiben az irányított rendszer elsfokú, vagy jól approximálható elsfokú modellel a periódus megválasztása a rendszer idállandója függvényében történhet: T= (4 10)T F Ha az irányított rendszer viselkedése másodfokú lengrendszer modelljével közelíthet, akkor a mintavételi periódus az alábbi tartományban történhet: T= (4 10)T R T R (Rise Time) azt az idintervallumot jelöli, amely alatt a rendszer egységugrásra adott válasza 10% -ról 90% -ra emelkedik (100% a kimenet az állandósult állapotban). 2 Ábra: A mintavétel megválasztása különböz rendszerek idállandóinak függvényében 2.2. Az irányítás mellett fellép feladatok Az irányítást megvalósító számítógépes programnak a beavatkozó jel kiszámítása mellett több feladatot is el kell végeznie. A feladatokat két csoportba sorolhatjuk:

1. Nagy prioritású feladatok: Tipikusan biztonsági problémák, amelyek prioritása nagyobb a beavatkozó jel számításánál, megszakíthatják a vezérljel számolását. Például fordulatszám szabályozás esetén, ha a beavatkozó szervként használt motor károsodik, a motor védelme ezt egy digitális bemeneten keresztül jelzi az irányítást megvalósító számítógépes programnak. Ebben az esetben az irányítási algoritmus a beavatkozó jel számítását nem kell elvégezze, a futása felfüggesztdik. 2. Kis prioritású feladatok: Ezek a feladatok ugyancsak párhuzamosan futnak az irányítást megvalósító ciklikusan meghívható függvénnyel, de nem szakíthatják meg az a beavatkozó jel számítását. Ilyen feladatok: - Megjelenítés (monitorizálás) - a beolvasott, kiküldött, számított jelek numerikus, grafikus kijelzése. - Naplózás a rendszer viselkedésének (beolvasott, kiküldött, számított jelek) archiválása adattárolókra az utólagos feldolgozás érdekében (irányítás kiértékelése, rendszerhibák megtalálása). A hasznos adatok elmentése mellett általában tároljuk a mentés idejét is (óra, dátum) ezért az eljárást naplózásnak is nevezzük. 3. A mérés menete 3.1. A ciklikusan meghívható függvény megvalósítása Windows operációs rendszerben. A ciklikus meghívható függvények implementálásához a Windows szoftverek fejlesztésére alkalmas programozási környezetek egy külön eseményt biztosítanak. Ez az úgynevezett Timer esemény. A Timer eseményt a program futása során engedélyezni vagy letiltani lehet, illetve módosítható a periódusa. MFC osztályokat alkalmazva, amikor az eseményt (WM_TIMER) hozzárendeljük a programunkhoz, akkor létrejön az OnTimer függvény, de ez még nem aktív. Ahhoz, hogy aktív legyen, a programban meg kell hívni a SetTimer függvényt: UINT SetTimer( UINT nidevent, UINT nelapse, void (CALLBACK EXPORT* lpfntimer)(hwnd, UINT, UINT, DWORD) ); nidevent egy (nullánál szigoruan nagyobb) azonosító, amellyet hozzárendelünk az eseményünkhöz nelapse a periódus, ezredmásodpercben megadva lpfntimer a timer függvény A Timer megállításánál KillTimer függvényt kell alkalmazni. BOOL KillTimer( int nidevent ); A függvény paramétere (nidevent) a Timerhez a SetTimerben hozzárendelt azonosító. Ha felhasználjuk a programozási környezet programvarázslóját, akkor a Timer - függvényt a programozási környezet automatikusan hozzárendeli az OnTimer függvényt.

Feladat: Készítsünk egy MFC segítségével fejlesztett programot, és adjunk egy Timer eseményt a programunkhoz. - Egy gomb lenyomásával indítsunk el egy Timert (1 azonosítóval, 1 másodperc periódussal) - A gomb lenyomásával a Timer eseményt tudjuk megállítani. - Az OnTimer függvényben tegyünk ki egy üzenetet a képernyre az AfxMessageBox függvény felhasználásával. 3.2. Folyamatok grafikus monitorizálása Ahhoz, hogy a folyamat aktuális és múltbeli állapotáról információnk legyen, a folyamat mért jeleinek grafikus megjelenítést alkalmazhatjuk. Ez egy idfüggvény grafikus megjelenítése, amelyben az utolsó N mintavételi periódusban begyjtött mintákat ábrázoljuk grafikusan. Ahhoz, hogy mindig a legutolsó mérések eredményét lássuk a képernyn, a grafikont folyamatosan el kell tolni. 3. Ábra. Mérési adatok grafikus kijelzése A kijelzéshez feltételezzük, hogy a képernyn X MAX, Y MAX pixelméret terület (grafikus ablak) áll rendelkezésünkre a grafikus kijelzéshez. Az egyszerség kedvéért a grafikus ablak bal fels sarkának a pozíciója x 0 =0, y 0 =0. A kijelzéshez az els lépésben a mérési adatokat kell kalibráljuk a grafikus ablakba. Grafikus kalibrálás: Feltételezzük, hogy a méréseket egy m változóba kapjuk. A mérések tartománya: m MIN m MAX. Ezt a tartományt kell transzformáljuk a 0 Y MAX grafikus tartományba. Figyelembe kell venni, hogy a grafikus kijelzkön az Y függleges tengely iránya fenntrl lefele néz. Így, ha m y -vel jelöljük a kijelzend értéket: m y = Y MAX m Y MAX MAX m MIN m INT INT azt jelenti, hogy a kapott érték egész részét kell venni.

Az adatok tárolása a kijelzéshez: Mivel egyszerre több adatot kell ábrázolni, a grafikus kalibráció után a méréseket érdemes egy listába tárolni. A lista végére mindig az új mérést tesszük. Ha a lista hossza elérte az X MAX értéket, a lista fejét levágjuk. Így a listában mindig a legutolsó X MAX darab mérés lesz. Az aktuális listában található mérési adatok ábrázolásához a LineTo() függvényt alkalmazhatjuk. Ha a megjelenítést frissíteni szeretnénk (amikor új mérési adat érkezett és a lista tartalma megváltozott) az elz adatokat a képernyrl törölni kell. Ezt úgy tehetjük meg, hogy az ábrázolás eltt egy kitöltött téglalapot rajzolunk a képernyre a háttér színével. Ehhez alkalmazhatjuk például a Tárolásra alkalmazott listaként használhatjuk a CList osztályt. Néhány függvény az osztályból: CList<int, int> m_list - egész elemekbl álló lista generálása int x = m_list.removehead() elem hozzáadása a lista fejére m_list.addtail(x) - az lista utolsó elemének eltávolítása/kiolvasása int n = m_list.getcount() a lista hosszának lekérdezése Feladat: A TemperatureControlLab tervben oldja meg egy periodikusan generált véletlenszeren generált számsorozat grafikus kalibrálását, mentését listába és ábrázolását. A grafikus ablak méreteit a MAX_TEMP és MAX_TIME_TEMP konstansokból kapjuk. A megoldását egy, az OnTimer függvényben meghívható függvényben (GetTemperatureList) implementáljuk, az alábbi módon: - Generálunk egy véletlenszer számot a rand() függvénnyel. - a grafikus kalibráláshoz alkalmazzuk, hogy a rand() függvény a számot 0..RAND_MAX tartományban generálja. - a generált elemet elhelyezzük a listába. -ha a lista hossza nagyobb, mint a MAX_TIME_TEMP vágjuk le a lista végét.

A TemperatureControlLab projektben listában található elemek grafikus ábrázolása az OnTimer függvényben automatikusan történik. 4. Kérdések és feladatok 1. Vizsgálja meg, hogyan kell a Timer függvényt alkalmazni C#/.NET fejleszt környezetben. 2. Oldja meg a grafikus kijelzést úgy, hogy a mérési adatok tárolásához nem listát, hanem tömböt alkalmaz. 3. Módosítsa a programot úgy, hogy a listában nem egy, hanem több mérési adatot tárol, és mindegyiket kiteszi ugyanarra a grafikus ablakra.