KURZUS: Számítógépes folyamatirányítás

MODUL: A funkciók

5.4. lecke: Az adattárolás, a kezelői kapcsolat és a DDC irányítás

Cél: A lecke célja, hogy a tananyag felhasználója megismerje:

  • a számítógépes folyamatirányító rendszerek sajátos adat-elhelyezési és adat-elérési problematikáját;
  • az adatbázis és az adatbáziskezelő fogalmát és használatát;
  • egy egyszerű, de jellemző példa-adatbázis struktúráját, adattartalmát és a hozzá kapcsolódó adatbáziskezelő funkcióit és működését;
  • az adatmegjelenítés tipikus eszközeit, az esemény- és az adatnapló fogalmát;
  • a kezelői beavatkozás tipikus eszközeit;
  • a szabályozás algoritmikus realizációjának (DDC) elvét és annak egy gyakori változatát, a diszkrét-idejű PID-algoritmust.

Követelmények: Ön akkor sajátította el megfelelően a tananyagot, ha

  • el tudja mondani a számítógépes folyamatirányító rendszerek sajátos adat-elhelyezési és adat-elérési elveit;
  • el tudja mondani az adatbázis és az adatbáziskezelő fogalmát és használatát;
  • fel tudja vázolni a tárgyalt példa-adatbázis szerkezetét, végig tud menni egy konkrét adatrekord elérési útján (szimulálva az adatbáziskezelő működését), el tudja mondani az adatbázis lehetséges adattartalmát.
  • fel tudja sorolni az adatmegjelenítés és a kezelői beavatkozás tipikus eszközeit, ismertetni tudja a naplók fajtáit, el tudja mondani a kétgombos kezelés célját;
  • fel tudja rajzolni a DDC-irányítás vázlatát, ismertetni tudja annak elemeit és el tudja mondani a diszkrét-idejű PID-algoritmus származtatását a folytonos PID-algoritmusból.

Időszükséglet: 1 óra

Kulcsfogalmak:

  • adatbázis,
  • logikai azonosító (logikai cím),
  • adatbáziskezelő,
  • rekord,
  • eseménynapló,
  • adatnapló,
  • kétgombos (kezelés),
  • DDC-irányítás,
  • PID-algoritmus.
1. Az adattárolás

A számítógépes folyamatirányító rendszereknek a működés során igen nagy mennyiségű adatot kell kezelniük és tárolniuk. Az adatok egy része a folyamatból származó bejövő, mért érték, más része feldolgozott, számított adat. Más vonatkozásban egy részük változó, más részük állandó. Változó adatok a jelminták és a számított folyamatváltozók, állandók pl. a fizikai címadatok, a számítási műveletekhez szükséges paraméterek, stb. A legtöbb adat úgymond közérdeklődés tárgya, vagyis több programnak szüksége lehet rá. Egyes programok írják (módosítják), mások olvassák őket. Az adatok tárolásának módja, az adathalmaz elhelyezése, szerkezete, az adatokhoz való hozzáférés semmiképpen nem lehet egy-egy program belügye.

Jegyezze meg az adatbázis és az adatbázis- kezelő fogalmát és használatát.

A rendszer változó és állandó adatait egy logikailag strukturált halmazban, az un. adatbázisban kell elhelyezni, és biztosítani kell, hogy az egyes programok csak egy szabványos felületen keresztül férhessenek hozzájuk. A szabványos felület alatt két dolgot értünk:

  • a programok az adatnak csak a logikaiazonosítóját, nevét ismerik és adhatják meg;
  • van egy olyan program - az adatbáziskezelő - amelytől az adatot kérni, vagy amelynek átadni kell, mert a memória adattábláihoz fizikailag csak ő férhet hozzá, vagyis a logikai azonosítót ő tudja fizikai memóriacímmé konvertálni.

Olyan ez, mint a könyvtár: nem megyünk be a 3. terembe és nem vesszük le a 12. polcon balról a 4. könyvet, hanem a könyvtárostól kérjük Arany János Toldiját és majd ő bemegy a 3. terembe és kihozza a 12. polcon balról a 4. könyvet, ha éppen más már korábban el nem kérte, tehát ha odaadhatja. Mi egyébként nem is tudjuk, hogy a kért könyv hol van!

A felhasználói programoknak szigorúan tilos az adatbáziskezelő megkerülésével, fizikai címmel hivatkozni egy-egy adatra. Ezt persze nem ellenőrzi és nem akadályozza meg semmi, de a programozónak tudnia kell, hogy az ilyen hivatkozások rendkívül súlyos programhibákat, adatkárosodásokat eredményezhetnek.

Az adatbáziskezelő formailag egy szubrutin, amelyet megfelelő bemenő paraméterek megadásával hívhatnak a felhasználói programok. E paraméterek az alábbiak:

  • az elérni kívánt adat logikai azonosítója,
  • egy nemóriaterület kezdőcíme (az a hely, ahol a kész, beírandó adat található, vagy ahová a program az adat kiolvasását kéri),
  • a hozzáférés módja (írás, vagy olvasás).

A logikai azonosító és az adatbázis struktúrája ismeretében az adatbáziskezelő előállítja az adat fizikai címét, majd végrehajtja az átírást a program által kijelölt terület és az adatbázis között.

Egy adatot értelemszerűen egy program ír (módosít), de több program olvashat. Az írást és az olvasást szét kell választani, vagyis biztosítani kell, hogy éppen írt adatot ne lehessen olvasni, vagy éppen olvasott adatot ne lehessen írni. Az adatbáziskezelő elvileg nem lehet újrahívható szubrutin, hiszen olyan memóriaterületet használ, amely több (az összes) program számára közös: ez maga az adatbázis. Ezért biztosítani kell, hogy egy-egy adat beírásának, vagy kiolvasásának teljes ideje alatt az adatbáziskezelő zavartalanul működhessen, ezért a memóriahozzáférés idejére le kell tiltani a megszakításrendszert. Ekkor viszont a számítógép az óra-interruptról sem vesz tudomást, és ha ez gyakran megtörténik, a szoftver órák elcsúsznak (késni fognak). A zavartalan működés úgy is biztosítható, hogy az adatbáziskezelőt erőforrásnak tekintjük és a szubrutint bevonjuk a rel-time operációs rendszer erőforráskezelő mechanizmusának hatáskörébe (lásd a 6. modulban).

A számítógépes folyamatirányító rendszerek adatbázisai a sok adat ellenére sem túl nagyok, mert az egyes, logikailag azonosítható (egy adatbázis-művelettel elérhető) adatelemek általában rövidek. Így az adatbázis legtöbbször elfér az operatív memóriában (memóriarezidens). Ennek ellenére háttértárolókra is szükség van, két okból:

  • az állandókat tartalmazó adatterületeket a rendszer indításakor fel kell tölteni (adatbázis-inicializálás),
  • a teljes adatbázist - archiválás céljából - bizonyos periodicitással lemezre szokás írni.

Maga az adatbázis logikailag egy több-dimenziós tömb, melynek elemei adott hosszúságú (rendszerint több szóból álló) rekordok Egy rekordot annyi logikai cím azonosít, ahány dimenziós a tömb (dimenziónként egy). A logikai azonosítók az adott dimenzió szerinti indexek. Egy adatbázis-művelettel egy rekord érhető el. A rekordok belső szerkezete tetszőleges lehet (pontosabban: azt a felhasználói programok szabják meg).

Példaként bemutatunk egy egyszerű kétdimenziós adatbázist, amelyet egy konkrét, működő rendszerben alakítottak ki.

Az egyik dimenziót az un. "típus", a másikat az un. "alcím" jelenti. Minden rekord két logikai azonosítóval rendelkezik, a típussal és az alcímmel. Egy {típus-alcím} párhoz azonban nem egy, hanem két rekord tartozik, egy un. leíró-rekord és egy adatrekord. Ezek összetartoznak és csak együtt értelmezhetők. Egy típuson belül mind a leíró- mind az adatrekordoknak azonos hosszúságúaknak kell lenniük, de a leíróhossz és az adathossz egymástól eltérhet. A különböző típusokba sorolt rekordok száma különböző lehet. Az adatbázishoz tartozik egy típusleíró táblázat, amely minden definiált típusra megadja

  • a definiált alcímek darabszámát,
  • a 0. alcímű leíró-rekord fizikai címét,
  • a leíró-rekordok hosszát,
  • a 0. alcímű adatrekord fizikai címét,
  • az adatrekordok hosszát.

A típusleíró táblázat az un adatbázis-fejen keresztül érhető el. Az adatbázis-fej tartalmazza a típusleíró táblázat kezdőcímét, valamint a definiált típusok darabszámát. Az adatbázis szerkezetét az 1. ábra szemlélteti.

Egy egyezerű adatbázis szerkezete
1. ábra

Gondolja magát az adatbáziskezelő helyébe és szimulálja annak adat-elérési tevékenységét! Azaz: nagyon részletesen próbálja átgondolni, hogyan jut el mondjuk a 3. típus 4. elemének leíró-, és adatrekordjához!

Az adatbáziskezelőt itt öt szubrutin alkotja:

  • adatbázis-inicializálás,
  • leíró-rekord olvasás,
  • leíró-rekord írás,
  • adatrekord olvasás,
  • adatrekord írás.

A adatbázis-inicializáló rutint a rendszer indításakor, egyszer kell lefuttatni. Itt paramétert nem kell megadni, a rutin a lemezről automatikusan feltölti az adatbázis leíró rekordjait. A többi szubrutin hívásakor a típust, az alcímet és a hívó által kijelölt puffer kezdőcímét kell megadni.

A leíró-rekordok a megfelelő adatrekordhoz kapcsolódó feldolgozási műveletek által igényelt konstansokat, az adatrekordok magukat az adatokat tartalmazzák. Például analóg jelek esetében a leíró-rekord az alábbiakat tartalmazhatja:

  • feldolgozás engedélyezés/tiltás,
  • kártyacím,
  • csatornacím,
  • erősítés,
  • szűrőkonstans ( α ),
  • skálafator,
  • skálanullpont,
  • mértékegység (ASCII karakterek),
  • alsó határérték,
  • felső határérték,
  • hiszterézis;

az adatrekord pedig:

  • aktuális szűrt érték,
  • előző szűrt érték,
  • fizikai érték ,
  • határérték-túllépés jelzés.
2. A kezelői kapcsolat

Sorolja fel az adatmegjelenítés és a kezelői beavatkozás tipikus eszközeit, ismertesse a naplók fajtáit, és fogalmazza meg a kétgombos kezelés célját;

E csoportba két feladat tartozik: az adatmegjelenítés és a kezelői beavatkozások végrehajtása.

Az adatmegjelenítés tipikus eszközei a nyomtatók, a monitorok és - ma már egyre ritkábban - a sématáblák. A nyomtatók a folyamat eseményeit, valamint egyes jellemző mennyiségeinek értékeit rögzítő naplókat állítják elő. Az eseménynaplózás az esemény bekövetkeztekor felmerülő, eseti feladat, míg az adatnaplók bizonyos periodicitással (pl. óránként, műszakokként) készülnek. Főként az eseménynaplózásnál olyan körülményeket kell biztosítani, hogy a naplók bizonylati értékűek, azaz hamisíthatatlanok legyenek. A folyamat állapotát vizuálisan tükröző információk monitorképeken jelennek meg. E képek tartalmát a technológiai követelmények határozzák meg, míg formai megjelenésük tervezésekor pszichológiai és ergonómiai szempontokat kell érvényesíteni (és azt is tudomásul kell venni, hogy ehhez mindenki "ért", és ebbe mindenki beleszól).

A kezelőibeavatkozás eszközei a nyomógombok, kapcsolók, számkerekek, potenciométerek, illetve - újabban már - a billentyűzetek egerek, gömbök, fényceruzák. A kezelői beavatkozásokat, vagyis egyes beavatkozó szervek kezelői működtetését ellenőrzött módon kell végrehajtani, vagyis a kezelői szándék véglegességére rá kell kérdezni. Veszélyes kezeléseknél régebben un. kétgombos megoldást alkalmaztak, hogy ne lehessen véletlenül, visszavonhatatlan parancsot kiadni. Ez a mód a mai eszközökkel is megvalósítható, szimulálható (pl. egérrel bizonyos időintervallumon belül a képernyő különböző helyeire kell kattintani). A kezelő számára a programrendszer működésébe való korlátozott beavatkozás lehetőségét is biztosítani kell (pl. egy-egy folyamatjel feldolgozásának engedélyezése/tiltása, egyes paraméter-értékek módosítása, stb.).

3. A DDC irányítás elve

A DDC irányítást külön, önálló tantárgy keretében lehetne tárgyalni. Itt csak az elvi alapok vázolására térünk ki.

DDC (Direct Digital Control) irányításról akkor beszélünk, ha a számítógép a szabályozási kör jelformáló szervének a szerepét is átveszi, és így a folyamatos jeleken végzett hagyományos, fizikai jelformálás helyébe diszkrét idejű jelminták digitalizált értékein végzett algoritmikus jelformálás lép (2. ábra).

DDC szabályozási kör
2. ábra

Az ábrán a, e, b, s rendre a folyamatos alapjel, ellenőrző jel, beavatkozó jel és a szabályozott jellemző; an, en, bn a megfelelő jelek digitalizált mintái, É az érzékelő, B a beavatkozó szerv, a D/A magába foglalja a tartószervet is.

A számítógép az an és az eismeretében kiszámítja a rendelkező jel rn mintáját:

r n = a n e n

és a jelformáló algoritmus ebből állítja elő a beavatkozó jel bn mintáját. Az algoritmus megvalósíthatja (szimulálhatja) a klasszikus PID-szabályozó működését, de olyan jelformálást is végezhet, melynek folytonos megfelelője nincs. A választék itt lényegesen gazdagabb, mint a hagyományos szabályozók esetében.

Példaként a diszkrét-idejű PID-algoritmust mutatjuk be. A folyamatos PID-szabályozó a beavatkozó jelet a

b(t)=K( r(t)+ 1 T I 0 t r(t)dt + T D dr(t) dt ) (1)

formában állítja elő, ahol K az arányos átviteli tényező, TI az integrálási, TD pedig a differenciálási időállandó. (Megjegyezzük, hogy a differenciáló hatás nem lehet ideális, de ettől most eltekintünk.) Az (1)-et a már ismert közelítő differenciáló és integráló formulák alkalmazásával átírhatjuk a jelmintákra vonatkozó alakba:

b n =K( r n + 1 T I i=1 n r i τ+ T D r n r n1 τ ) (2)

A jobboldal második tagja miatt ez a képlet rekurzív számításra nem alkalmas. Ezért bn-1-et is felírjuk, majd képezzük a két érték különbségét:

b n b n1 =K( ( r n r n1 )+ τ T I r n + T D τ ( r n 2 r n1 + r n2 ) ) (3)

vagy az aktuális beavatkozó jelre kifejezve:

b n = b n1 +K( ( r n r n1 )+ τ T I r n + T D τ ( r n 2 r n1 + r n2 ) ) (4)

Ez azt jelenti, hogy a beavatkozó jel aktuális mintája a jel előző mintájából, valamint a rendelkező jel aktuális és két megelőző mintájából rekurzív módon, a minták lineáris kombinációjaként képezhető.

A (4) az un. pozíció algoritmus, amely a teljes beavatkozó jel-értéket kiszámítja. Ha a beavatkozó szerv integráló (inkremens) jellegű, akkor csak a beavatkozó jel megváltozását kell meghatározni (és kiküldeni), vagyis az algoritmusnak a (3) szerint kell működnie. Ebben az esetben bn-1-et nem kell tárolni. Ez az utóbbi változat az un. sebesség-algoritmus.

Lépjen ki a tananyagból!  Gondolja át a lecke tartalmát, rekonstruálja a szerkezetét! Vegyen elő egy lapot és írja le a lecke vázlatát! Ne sajnálja az erre fordított időt! Ha gondosan megcsinálja, már majdnem tudja is az anyagot.

Önellenőrző kérdések

1. Mondja el az adatbázis és a adatbáziskezelő fogalmát!

2. Mondja el részletesen az adatbáziskezelő funkcióit és használatának (hívásának) módját!

3. Mondja el részletesen a leckében szereplő példa-adatbázis struktúráját és a logikai azonosítóval bíró adatelemek (rekordok) elérésének mechanizmusát (vagyis: az adatbázikezelő működését)!

4. Válassza ki a helyes állításokat!
A felhasználói programok közvetlenül hozzáférhetnek az adatbázis elemeihez.
A felhasználói programok nem ismerik az adatbázis elemeinek fizikai címeit.
Az adatbázis elemei logikai címekkel (nevekkel) azonosítható rekordok.
Minden rekordot egyetlen név azonosít.
Minden rekordhoz annyi logikai azonosító tartozik, ahány dimenziós az adatbázis.
A rekord adott számú, a memóriában fizikailag összetartozó (egymás utáni) gépi szó együttese.
A példa-adatbázis kétdimenziós, minden rekordját egy 'típus' és (azon belül) egy 'alcím' azonosít.
A példa-adatbázis minden rekordja azonos hosszúságú.
A példa-adatbázis valamely típusához tartozó rekordok azonos hosszúságúak.
A példa-adatbázis minden típus-alcím azonosító párjához csak egy rekord tartozik.
A példa-adatbázisban minden adatelemhez két, különböző funkcionális tartalmú rekord tartozik.
A példa-adatbázis leíró rekordjai az adatelemhez tartozó változó értékeket tartalmazzák.
A leíró- és az adatrekord minden adatbázis szükségszerű jellemzője.
A példa-adatbázisban a leíró- és az adatrekordot az adatbáziskezelő különböző szubrutinjai kezelik.
Az adatbáziskezelő újrahívható szubrutinok együttese.
5. Példa-adatbázisunkban valamely típus adatrekordjainak hossza 3 gépi szó. Az adatrekordok az 1000-es címen kezdődnek. (A címeket az egyszerűség kedvéért decimálisan adjuk meg.) Melyik címen van a 12 alcímű adatrekord utolsó szava?
1033
1035
1036
1038
1039
1040

6. Mondja el az adat- és az eseménynapló fogalmát, és mutasson rá funkcionális különbözőségükre!

7. Rajzolja fel az egyhurkos és egyváltozós DDC szabályozási rendszer vázlatát, sorolja fel a rendszer elemeit és azok funkcióit!

8. A folyamatos-idejű PID-szabályozó (1) formulájának időbeli diszkretizálásával vezesse le a digitális PID-szabályozó algoritmusának rekurzív formuláját!