online kép - Fájl  tubefájl feltöltés file feltöltés - adja hozzá a fájlokat onlinefedezze fel a legújabb online dokumentumokKapcsolat
  
 

Letöltheto dokumentumok, programok, törvények, tervezetek, javaslatok, egyéb hasznos információk, receptek - Fájl kiterjesztések - fajltube.com

Online dokumentumok - kep
  

Programozható vezérlők hardverfelépítése

számítógépes



felso sarok

egyéb tételek

jobb felso sarok
 
A programok felépítése, az utasítasok típusai
Adatbazis létrehozasa - Access
Rekurzió (particiószam, Hanoi tornyai, postfix konverzió)
Az ACCESS adattípusai
Digitalis rendszerek tervezése a VHDL nyelv segítségével
RÉSZLETES ÉRETTSÉGI VIZSGAKÖVETELMÉNY
Windows XP (magyar) új kapcsolat létrehozasa
Hattértarak és jellemzöik
MS Project
Tömörítés, hibadetektalas és javítas
 
bal also sarok   jobb also sarok

Programozható vezérlők hardverfelépítése

A programozható vezérlők hardvere univerzális. Fő rendeltetése a vezérlési program végrehajtá-

sa, amihez az adatok beolvasására, feldolgozására és az eredmény kivitelére van szükség. Ezt a

három műveletet az alábbi hardveregységek végzik: bemeneti egység, központi feldolgozóegy-

ség és kimeneti egység. A felsoroltak közül a központi feldolgozóegység fejlődött a legdinami-

kusabban, és főként ez határozza meg a PLC szolgáltatásait.

















2.1. ábra. A programozható vezérlő három fő egysége

Az első PLC-k központi feldolgozóegysége még kis- és/vagy közepes mértékben integrált

digitális áramkörökből (Small Scale Integration, SSI; Medium Scale Integration, MSI) épült fel.

Az integrálási technológia fejlődésével a huzalozott logikájú központi egységeket felváltották az

ún. bitprocesszorok (szokásos elnevezések még: Boole-processzor, logikai processzor), amelyek

funkcionálisan nem, csak méretbeli és áramköri jellemzők szempontjából jelentettek előnyt az

előzőekhez képest. Ezek alkották a programozható vezérlők első generációját.

A nagymértékben integrált áramkörök (Very/Large Scale Integration, V/LSI) elterjedésé-

vel az    általános célú mikroprocesszorok váltak a PLC-k központi feldolgozóegységévé, ami

egyben minőségi változást is jelentett. A bájt-, ill. szóprocesszorok alkalmazása révén a Boole-

műveletek mellett a következő funkciók váltak általánossá a programozható vezérlőkben: aritme-

tikai műveletek végzése, szabályozási funkció ellátása, szabványos kommunikáció biztosítása

stb. A mikroprocesszor alapú programozható vezérlők, amelyek napjainkra szinte egyeduralko-

dóvá váltak, tekinthetők a PLC-k második generációjának.


2.1. Bitprocesszor alapú programozható vezérlők

A bitprocesszor alapú programozható vezérlők jellemzői

− csak egybites, Boole jellegű logikai műveletek végzése;

− kevés számú utasítás;

− kisméretű memóriakezelési lehetőség;

− mikroprogramozott vezérlési architektúra;

− névkódon alapuló (esetleg gépi kódú) programozás;

− alacsony szintű pont-pont jellegű kommunikáció.

A mára elavultnak tekinthető bitprocesszor alapú PLC-k bemutatása egyrészt didaktikai-

lag indokolható, mivel felépítésük és működésük egyszerű és szinte "bitenként" követhető, más-

részt az ún. PLC-nyelvek és a korai bitszervezésű architektúrák között igen szoros összefüggés

van. A bitprocesszor rendszerint a következő egységeket tartalmazza: bemeneti multiplexer,

programozható logikai egység (Logical Unit, LU), egybites akkumulátor, kimeneti tároló és

demultiplexer, véletlen hozzáférésű memória (Random Access Memory, RAM) és a szükséges

adat-, cím- és vezérlővonalak (2.2. ábra).































2.2. ábra. Egy bitprocesszor alapú PLC felépítése



Az egyes egységek funkciói

bemeneti multiplexer: a bemeneti logikai változók kiválasztása és az adat kapuzása a

programmemóriában tárolt bemeneti cím alapján;

logikai egység: a bemenetére jutó bitek között a programmemóriában tárolt mikrokód

által meghatározott logikai művelet végzése;

akkumulátor: egybites operandus- és eredményregiszter;

kimeneti demultiplexer és tároló: a LU által végrehajtott logikai művelet eredményének

(1 bit) kijuttatása a programmemória által meghatározott kimenetre és az adat tárolása;

adatmemória: a logikai műveletek részeredményeinek tárolása.


A bitprocesszor alapú PLC külső elemei és azok fun 525i81f kciói

programmemória: a vezérlési algoritmust realizáló program tárolása,

programszámláló: a programmemória egymás utáni címkombinációinak előállítása az

óragenerátorról kapott impulzusok hatására.

A mikrokód által programozott logikai egység legegyszerűbb felépítését szemlélteti a 2.3. áb-

ra.














































2.3. ábra. A mikrokód által programozott logikai egység

A logikai egység a két bemeneti változón (A, B) négyféle logikai műveletet hajt végre, de

a kimeneti multiplexer révén a C, D bemenetek (műveleti kód) által kiválasztott eredmény jut a

kimenetekre (Y) az alábbiak szerint:

Mikrokód

Függvény

C





D





Y

A & B

A B

A & B  

A B

A 2.2., ill. 2.3. ábrák alapján követhető a bitszervezésű PLC működése. A programmemó-

riában tárolt operandusmező közvetlenül címezi a bemeneti, kimeneti, ill. RAM-elemeket, a mű-

veleti kód pedig a programozható logikai egység által végzendő műveletet definiálja. A logikai

egység mindig az akkumulátor és a másik operandus (bemenet, vagy RAM bit) között hozza

létre az előírt logikai műveletet, például a kétváltozós ÉS kapcsolatot. A programmemóriában

tárolt programot a PLC az órajel-generátor által működtetett számláló révén, növekményes sor-

rendben egymás után     ciklikusan hajtja végre. A kimenetre juttatott eredményeket a flipflopok

tárolják két ciklus között.

A programozható vezérlőkben kétféle funkciójú memóriát alkalmaznak: program- és

adatmemóriát. A programmemória a vezérlőprogramot tartalmazza, amely a vezérlési algorit-

must realizálja. A bitprocesszor alapú PLC-k esetén a programmemória szóhossza nem szükség-

képpen igazodik a szóprocesszoroknál ismert 8/16/32 bites szóhosszhoz. A programmemória

szóhosszúságát egyrészt az utasítások számának bináris kódja, másrészt a be/ki címtartomány

határozza meg.

Példaként egy 12 bit szóhosszú memória funkcióit szemlélteti a 2.4. ábra, ahol az utasí-

tásbitek száma 3 (2 =8 utasítás), a be/ki címbitek száma 9 (2 = 512 be/ki cím, pl. 256 bemenet,

256 kimenet).














2.4. ábra. Egy utasítás elhelyezése a programtárolóban

Programmemóriaként korábban egyszer programozható, csak olvasható memóriát hasz-

náltak (Programmable Read-Only Memory, PROM), míg napjainkban törölhető, programozható,

csak olvasható (Erasable PROM, EPROM), ill. elektromosan törölhető, újraprogramozható, csak

olvasható (Electrically EPROM, EEPROM) memóriát alkalmaznak. Utóbbi előnye, hogy a prog-

ram módosítása a memóriacsip kivétele nélkül közvetlenül megoldható (in system

programming). Főként a felhasználói programok belövésekor jól használhatók programmemóri-

aként a teleppel védett CMOS RAM-ok (Complementary Metal-Oxid Semiconductor, CMOS).

A programfutás közben keletkező változók tárolására írható-olvasható memóriák (RAM)

szolgálnak, amelyek a tápfeszültség bekapcsolásakor telepes védelem nélkül tetszőleges értéket

(0, ill. 1) vehetnek fel.

A RAM-memóriák a következő célorientált funkciókat látják el a programozható vezér-

lőkben

− a közbenső adattárolók funkciója hasonló a hagyományos vezérlés segédreléihez. Ezek

a tárolók valósítják meg az ún. MERKER funkciókat (a programban M betűvel jelölik). Erre van

szükség a diszjunktív alakú függvényekben szereplő VAGY kapcsolatok részeredményeinek

tárolásánál vagy a sorrendi hálózatokban a lefutó vezérlés belső állapotainak 1 az n-ből jellegű

állapot kódolására. A MERKER memória bitprocesszor alapú PLC-k esetén bitszervezésű;

− az I/O RAM funkció a bemeneti, ill. kimeneti változók tárolását jelenti, szintén bitszer-

vezésű;

− az időzítők (timer) és számlálók (counter) értékének átmeneti tárolása (bájt vagy szó jel-

legű).

Napjainkban szinte kizárólag       teleppel védett CMOS RAM csipeket használnak RAM-

memóriaként. Egy tipikus bitprocesszor alapú PLC felépítését szemlélteti a 2.5. ábra [10]. Látha-

tó, hogy a logikai egység operandusai lehetnek: egy bemenet (I), egy kimenet (O), egy merkerbit

(M), egy időzítőkimenet (T) vagy számlálókimenet (C). A bemeneti változót kivéve valamennyi

változó a logikai egységgel, a program futtatásával módosítható.

















































2.5. ábra. Bitszervezésű PLC felépítése


2.2. Bájt- vagy szóprocesszor alapú programozható vezérlők

A programozható vezérlők szolgáltatásai az általános célú mikroprocesszorok (bájt- vagy szó-

processzorok) beépítésével minőségileg megváltoztak. A szóprocesszorok felépítése nagymér-

tékben hasonlít a bitprocesszorokéhoz.

Az első mikroprocesszorok a 70-es évek elején jelentek meg. A mikroprocesszorok a di-

gitális számítógépek központi feldolgozóegysége funkcióinak ellátására alkalmasak, nagymér-

tékben integrált áramkörök, egyetlen lapkán kialakítva. Az első mikroszámítógép-rendszer már a

Neumann-féle modell valamennyi elemét tartalmazta (2.6. ábra):

- központi feldolgozóegység (Central Processor Unit, CPU);

- memóriák (RAM, ROM);

- beviteli/kiviteli egység (Input/Output, I/O);

- sínrendszer.















2.6. ábra. A mikroszámítógép felépítése









2.2.1. A mikroprocesszor

A mikroprocesszor a számítógép funkcióit ellátó digitális, igen nagy mértékű integráltságú

áramkör (Very Large Scale Integration, VLSI), amelynek három fő része van: időzítő-vezérlő

egység, aritmetikai-logikai egység (Arithmetical and Logical Unit, ALU) és regiszterek (2.7.

ábra).


















2.7. ábra. Az egyes részegységek funkciói

Az egyes részegységek funkciói

Az időzítő-vezérlő egység feladata a program utasításai vagy külső kérések (megszakítás,

tartás, várakozás) alapján a gép részeinek irányítása. Ez egyrészt az ALU műveleteinek vezérlé-

sét, az egyes adatútvonalak nyitását, zárását, a sínek működtetését, másrészt a külső egységek: a

memória és az I/O egységek vezérlését jelenti.

Az utasítások végrehajtása többnyire         mikroprogram alapján történik. Minden utasítás

műveleti kódja egy kis kapacitású ROM-tárban, azaz a mikroprogramtárban elhelyezett progra-

mot indít el. A mikroprocesszor időbeni működését biztosító órajelet az időzítőegység fogadja. A

vezérlőegység fontos része az utasításregiszter, amely a programmemóriából az utasításlehívási

ciklusban beolvasott utasítás kódját tárolja, amíg az utasításdekódoló és értelmező logika meg-

határozza az elvégzendő műveletet és elindítja a végrehajtást vezérlő mikroprogramot. A korsze-

rű processzorokban az IR szerepét az adatcsatornás (pipeline) regiszter váltotta fel.

A vezérlőegység fontos funkciója a különböző aszinkron jellegű kérések (programmeg-

szakítás, tartáskérés, várakozáskérés) fogadása és az ezekhez tartozó vezérlés.

A mikroprocesszor másik fontos egysége az aritmetikai-logikai egység (ALU), amely az

utasításokban meghatározott aritmetikai és logikai műveleteket hajtja végre.

Az ALU-hoz szorosan hozzátartozik az           akkumulátorregiszter, ill. az állapotregiszter

(flagregiszter). A processzorok általában csak néhány aritmetikai műveletet (összeadás, kivonás,

szorzás) képesek elvégezni, ezért a korszerű mikroprocesszorokhoz ma már nélkülözhetetlenül

hozzárendelnek egy aritmetikai társprocesszort (co-processzor).

A mikroprocesszorok speciális és általános célú regisztereket tartalmaznak.

Speciális célú regiszterek: utasításszámláló regiszter (Program Counter, PC vagy

Instruction Pointer, IP), utasításregiszter (Instruction Register, IR), állapotregiszter (Flag

Register, FR), veremmutató (Stack Pointer, SP). Ezek szinte valamennyi mikroprocesszorban

megtalálhatók, de az egyes típusok további különleges célú regisztereket tartalmazhatnak, pl.

indexregiszter, báziscímregiszter.

Az utasításszámláló regiszter mindig a soron következő utasítás memóriacímét tartalmaz-

za. A PC kezdő értékét, azaz a program első utasításának helyét az operációs rendszer jelöli ki. A

mikroprocesszor törlésbemenetét (reset) hatásosan vezérelve a PC-be a 0000hex cím töltődik. A



PC tartalma vagy minden memória-hozzáférés után eggyel nő, vagy vezérlésátadó utasítás esetén

(JUMP, CALL, RETURN stb.) a vezérlőegység a PC-be az új címet tölti be.

Az állapotregiszter ún. jelzőbiteket (feltételbiteket), ill. más vezérlő-, ellenőrző biteket

tartalmaz. Korábban a flagbitek az ALU-műveletekhez voltak hozzárendelve, pl. átvitelbit

(carry), az eredmény nulla voltát jelző bit (zero), túlcsordulásbit (overflow). Az újabb mikropro-

cesszorok esetén számos     vezérlési információt jelzőbitek tárolnak, pl. megszakítás kiszolgálásá-

nak letiltása, memórialapozás engedélyezése.

A veremmutató speciális regiszter, a veremtár legfelső elemének címét tartalmazza. A ve-

remtároló az adatmemória (RAM) egy lefoglalt területe. Adatokat csak a verem tetejére lehet

tenni, és csak onnan lehet levenni. Ezt a memóriakezelési módot "utoljára be, elsőre ki" (Last-

In-First-Out, LIFO) kezelésnek nevezik. A veremmutató minden verem (stack) betöltésekor a

betöltött bájtok számával csökken (dekrementálódik), ill. kiolvasáskor növekszik (inkrementáló-

dik).

Adatbetöltéskor a veremmutató először dekrementálódik és aztán következik be az adat

beírása, kiolvasáskor először a processzor olvas, aztán a veremmutató inkrementálódik. Ezért

gyakran   predekrementáló, ill. posztinkrementáló jellegűnek tekintik a veremműveletet. Egy

nyolcbites mikroprocesszor regisztereit a 2.8. ábra szemlélteti.














2.8. ábra. Nyolcbites mikroprocesszor regiszterei

A 2.8. ábrán A az akkumulátort, F a flagregisztert (5 bit), a B és C, a D és E, a H és L a

regiszterpárba is szervezhető nyolcbites regisztereket jelöli. A kérdéses mikroprocesszor esetén a

jelzőbitek funkciói: CY átvitel a legmagasabb helyértékű (Most Significant Bit, MSB) biten, S

előjelbit, Z zérus bit, P paritásbit, AC dekád átvitelbit. A jelzőbitek RS flipflopok, amelyeket az

ALU módosít aritmetikai vagy logikai műveletek után és az eredmény a flipflopokba íródik.

A regiszterek a tápfeszültség bekapcsolásakor véletlenszerű értéket vehetnek fel.

A CPU fontos részét képezi a sínrendszer. Ezen a belső egységek, valamint a külső egy-

ségek (memória, I/O) közötti adatforgalom bonyolódik. A sínrendszer funkcionálisan háromféle

sínt foglal magában: adatsínt (data bus), címsínt (address bus) és vezérlősínt (control bus).

A sínrendszer funkciói, jellemzése:

címsín: megoldja az adatforgalomban részt vevő eszközök kijelölését; egyirányú, há-

romállapotú, a processzortól függően 16/32 bit szélességű (azaz ennyi vezeték), amely meghatá-

rozza a címezhető memória és I/O tartományt;

adatsín: biztosítja az adatok útját; kétirányú, háromállapotú, a processzortól függően

8/16/32 bit szélességű; az adatsínvezérlés meghatározza az adatátvitel irányát;

vezérlősín: összehangolja a kapcsolatban részt vevő eszközök működését; egyirányú,

háromállapotú, a processzortól függően 5-15 bit szélességű (azaz ennyi vezeték).










A legegyszerűbb vezérlősín ötbites:

− memóriaolvasás (Memory Read, MR);

− memóriaírás (Memory Write, MW);

− beviteli/kiviteli eszköz olvasása (Input/Output Read, I/OR);

− beviteli/kiviteli eszköz írása (Input/Output Write, I/OW);

− megszakítás (interrupt).

A vezérlősín révén lehet az azonos címen lévő memória-, illetve I/O műveleteket megkü-

lönböztetni.

A külső sínrendszer lehet helyi sín (local bus), amely a processzorhoz közvetlenül kap-

csolódik, ill. lehet      rendszersín (system bus), amely a processzor sínmeghajtásán keresztül kap-

csolódik a rendszer elemeihez. A sínrendszer használatának előnye, hogy a szabványosított jel és

vezetékkiosztás miatt az egyes részegységek könnyen cserélhetők. A rendszer bemenetei hard-

verjelleggel terhelik a sínrendszert, ezért kell bizonyos számú modul esetén sínmeghajtást hasz-

nálni. A mikroprocesszoros rendszerekben használatos sín párhuzamos sínnek tekinthető.


2.2.2. A mikroprocesszor tipikus műveletei

A  CPU működése ciklikus: utasításlehívás, végrehajtás, lehívás, végrehajtás stb. Ezt a pontos

sorrendiséget a rendszeróra vezérli. A CPU működésében a legelemibb időegység a gépi állapot,

amely rendszerint egy órajel periódusa alatt játszódik le. Egy gépi állapothoz egy jól definiált

művelet tartozik: pl. a címinformáció kijuttatása a címsínre. Általában több gépi állapot alkot

egy gépi ciklust, ami egy összetettebb műveletet jelent.

Tipikus gépi ciklusok: egy memóriarekesz olvasása (MR), ill. írása (MW) vagy I/O esz-

köz írása, ill. olvasása (I/OW, I/OR), utasításlehívás (fetching) stb. Egy utasítás lehívásának és

végrehajtásának együttes művelete az utasításciklus, amely 1...8 gépi ciklusból állhat az utasítás

bonyolultságától függően. Általában egy utasításciklus annyi gépi ciklusból áll, ahányszor a

CPU-nak a memóriához vagy I/O-hoz kell fordulnia. Minden utasításciklus utasításlehívási gépi

ciklussal kezdődik (fetch), a további gépi ciklusok olvasási vagy írási jellegűek.


2.2.2.1. Tipikus gépi ciklusműveletek

Minden utasításciklus első gépi ciklusa egy utasítás lehívása a programmemóriából.

Utasításlehívás folyamán a CPU:

− kijuttatja az utasításszámláló tartalmát a címsínre;

− az adatsínt bemeneti állapotba állítja;

− kiad egy memóriaolvasás- (MR-) jelet a vezérlősínre;

− az adatsínen megjelenő információt az utasításregiszterbe tölti;

− az utasításszámláló tartalmát 1-gyel növeli.

Ha több-bájtos utasításról van szó, akkor a többi bájt beolvasása hasonló művelettel (MR)

történik, de az adatok nem az utasításregiszterbe kerülnek. A mai gépek utasításlehívása ettől

némileg eltér.

Memóriaolvasás folyamán a CPU

− kiadja a kiolvasandó memória címét a címsínre;

− az adatsínt bemeneti állapotba állítja;

− kiad egy memóriaolvasás- (MR-) jelet a vezérlősínre;

− az adatsínen lévő információt valamelyik regiszterébe tölti.







Memóriaírás folyamán a CPU

− kiadja a memóriacímet a címsínre;

− az adatsínt kimeneti állapotba állítja;

− kiadja a beírandó adatokat az adatsínre;

− kiad egy memóriaírás- (MW-) jelet a vezérlősínre.

A memóriaírás művelete hasonló a memóriaolvasáshoz a viszonyok értelemszerű cseréjé-

vel. A regiszterírási és -olvasási műveletek tipikus gépi ciklusok, rendszerint az utasításlehívási

ciklusba vannak ágyazva.

Beviteli/kiviteli eszköz olvasásának (I/OR) és írásának (I/OW) folyamata:

A beviteli/kiviteli eszköz olvasása és írása igen hasonlít a memóriaolvasás és -írás műve-

letéhez, a folyamat a memóriaszavak I/O-ra cserélésével leírható. Az azonos című memória-

vagy I/O egység írását, ill. olvasását a vezérlősínen lévő eltérő vezérlőjel különbözteti meg és

így elkerülhető a sínkonfliktus.


2.2.2.2. Több gépi ciklusból álló műveletek

A veremmemória olvasása (Stack Read), a veremmemória írása (Stack Write) és a programmeg-

szakítás (Interrupt) műveletek rendszerint több sajátos gépi ciklusból állnak.

Veremmemória olvasása és írása: ez a két művelet megegyezik az MR-, MW-

műveletekkel, azzal a különbséggel, hogy a memória címét a veremmutató adja és a vezérlőegy-

ség biztosítja annak       automatikus növelését, ill. csökkentését. A FETCH-, MR-, Stack Read-

ciklusok csak a mikroprocesszor belsejében lévő információforrásokban és célhelyekben térnek

el egymástól, kívülről a sínrendszeren csak a pontos memóriacím ismeretében lehet megállapíta-

ni, hogy melyik művelet zajlik a sínen.

Programmegszakítás: a számítógépes feldolgozás közben igen gyakran következnek be

olyan események, amelyek a feldolgozás szempontjából váratlannak tekintendők, pl. egy irányí-

tórendszer esetén valamely érzékelő hibát jelez (tűzérzékelő, füstérzékelő, feszültségkimaradás),

amelyek közel azonnali feldolgozást igényelnek. Az ilyen események feldolgozására szolgál a

mikroszámítógép megszakításrendszere (interrupt system), ami lehetőséget ad, hogy egy hard-

vereszköz (pl. érzékelő) programmegszakítást kérjen.

A megszakításkérelem egy jelzés a processzor számára valamely fontos esemény bekövet-

keztéről, amely valamilyen kiszolgálóprogrammal reagál ezen aszinkron jellegű eseményre. A

megszakításkérést a processzor egy speciális gépi ciklus szerint fogadja el, amit a megfelelő ki-

meneten (INTA) jelez vissza. A megszakítási funkció ellátására egy hardver-szoftver együttes

szolgál, amely együttesen végzi el a kérelem kiértékelését és annak végeredményeként a szüksé-

ges tevékenységet. A megszakításokat mikroprocesszoron belüli események is kiválthatják (pl. 0-

val való osztás esetén).

A megszakításkéréseket, amit indíthatunk szoftverből is, a processzor szubrutin jelleggel

hajtja végre. Több megszakításkérés esetén a megszakításokat prioritási sorrendjük alapján dol-

gozza fel a processzor. A hardvermegszakítások rendszerint maszkolhatók, ami azt jelenti, hogy

pl. nyolc megszakítási szint közül csak az ötös szintűt engedélyezzük vagy tiltjuk. Ugyanakkor

van nem maszkolható megszakításkérés (Non Maskable Interrupt, NMI) is, ami szoftverúton nem

tiltható le Az NMI funkciót rendszerint valamilyen súlyos hardverhibához (pl. feszültség-

kimaradás) rendelik.

A mikroszámítógép hatékony megszakításrendszere feltétele a mérés-, ill. irányítástechniká-

ban, távközléstechnikában elengedhetetlenül fontos valós idejű (real-time) adatfeldolgozásnak.








2.2.2.3. A processzor állapotai

Egy processzor működése rendszerint a következő állapotokból áll

futó (run) állapot, amikor a processzor a programmemória által meghatározott utasítá-

sokat egymás után hajtja végre;

várakozó (wait) állapot, amely a gépi cikluson belül valósul meg;

tartás- (hold-) állapot, amely gépi ciklusok között aktualizálható;

leállás- (halt-) állapot, amikor egy HALT utasítás hatására a processzor leáll, nem vé-

gez műveletet és ezen állapotból csak engedélyezett megszakítás hatására lép ki.

Várakozás

A CPU tevékenységét egy kvarcoszcillátor vezérli. Egy mikroszámítógép- rendszert úgy

terveznek, hogy a CPU és a memóriák azonos sebességgel (frekvencián) működjenek. Előfordul

azonban, hogy ez nem áll fenn, pl. ha egy rendszerben a CPU-t gyorsabbra, vagy kényszerűség-

ből a memória egy részét lassúbbra választják. Itt arról az esetről van szó, ha a memóriának csak

egy kisebb részének nagyobb a hozzáférési ideje, mint a CPU gépi állapotának az ideje. Ugyanis,

ha a teljes memóriatartomány lassabban működik, akkor csökkenteni kell a CPU oszcillátorának

frekvenciáját. Előnytelen a rendszer sebességét csökkenteni, mert az az optimális, ha csak akkor

működik lassabban a rendszer, ha lassúbb memóriával (vagy I/O-val) kommunikál. Erre dolgoz-

ták ki a READY-WAIT funkciót.


A READY-WAIT funkció lényege, hogy egy a címsínre csatlakozó logika (dekódoló) fel-

ismeri a címkombinációból annak a memóriablokknak a címét, amelyik egy gépi állapotnál több

időt igényel, és kimenete várakozást kér a processzor megfelelő (pl. Ready) bemenetén. Ezt a

kérést elfogadva a CPU ún. "wait" állapotba kerül, amit a megfelelő kimeneten jelez. A "wait"

állapot azt jelenti, hogy a CPU a címsínen, az adatsínen és a vezérlősínen hagyja az előző infor-

mációt egy (újabb kérés esetén több) gépi állapot idejére. Ha a CPU gépi állapot ideje 500 ns és

a memória-hozzáférés 650 ns, akkor egy Ready-kérés kétszer 500 ns hozzáférési időt biztosít a

memóriának, ami már bőségesen elegendő.

A címdekódoló logikára pedig azért van szükség, hogy ez a várakozás csak a lassú me-

mória esetén lépjen fel. A "wait" állapotot az ún. egylépésű üzemmód kialakítására is felhasznál-

hatjuk, ami a hibakeresésnél előnyös. A mikroprocesszor-technikában a várakozás miatt kiesett

gépi állapotokat elengedett ütemeknek is nevezik.

Tartás

A mikroszámítógépben a memória- és be/ki eszköz közötti adatforgalom csak két lépés-

ben történhet: memória és CPU, ill. CPU és be/ki eszköz, és viszont. Ez nagy mennyiségű adat

esetén megduplázza az adattranszfer idejét, amit a processzor HOLD állapota csökkent.


A CPU rendelkezik egy tartáskérés-bemenettel (HOLD vagy BUSRQ). Amennyiben

ezen a bemeneten tartáskérés jelenik meg, azt a processzor egy belső folyamat után a megfelelő

kimeneten nyugtázza (HLDA vagy BUSACK), ami egyben azt jelenti, hogy a sínrendszerét

nagyimpedanciás (Z) állapotba helyezi. Ezután egy külső eszköz rákapcsolódhat a sínrendszerre,

és közvetlen adatforgalmat bonyolíthat a memória és a be/ki egységek között. Az ilyen memória-

hozzáférést direkt memóriakezelésnek (Direct Memory Access, DMA) nevezik.


Azt az eszközt, amely az adatforgalom vezérlését végzi, DMA vezérlőnek nevezik (DMA

controller). DMA adatátvitelt alkalmaznak hajlékonylemez- (floppydiszk-) kezeléshez, vagy

többprocesszoros rendszerekben a közös memóriakezeléshez. A HOLD állapot szinte kizárólag

hardverfolyamat, így kezelése nem jár a CPU belső állapotának megváltozásával, ellentétben a

megszakításkérés kiszolgálásával. HOLD állapotban a processzor lehetőséget biztosít a prog-

rammegszakításra. A mikroprocesszor működését rendszerint folyamatábrán adják meg, amely





gépi állapotokra bontva biztosítja a szinkron jellegű működést és az aszinkron kérések (megsza-

kítás, várakozás stb.) végrehajtását.


2.2.3. Beviteli/kiviteli elemek

A mikroszámítógép beviteli, ill. kiviteli elemei [13] a központi feldolgozóegység és a külvilág

(ember, gép, technológia, számítógép) közötti kapcsolat kialakításának lehetőségét biztosítják. A

be/ki elemek típustól függően párhuzamos, ill. soros kommunikációra alkalmasak.

Közös jellemzőik: biztosítják a be/ki elem csatlakoztatását a mikroszámítógép buszrend-

szeréhez a szükséges adat-, cím- és vezérlővezetékekkel; rendszerint programozható felépítésük

miatt igen rugalmasan alkalmazkodnak a csatlakoztatandó eszközhöz.

A beviteli/kiviteli eszközök beállítását (inicializálását) a rendszer bekapcsolása után a

programból kell letölteni. Néhány beviteli/kiviteli áramkör: programozható párhuzamos perifé-

riaillesztő egység (Progammable Peripheral Interface, PPI); programozható soros illesztőegység

(Universal Synchronous-Asynchronous Receiver Transmitter, USART); programozható időzítő-

és számlálóegység (COUNTER/TIMER).

2.2.4. Mikroprocesszor alapú PLC-k hardverfelépítése

A mikroprocesszor bázisú PLC központi egysége 8, 16, ill. 32 bites általános célú processzor

vagy mikrovezérlő (microcontroller) egyaránt lehet. Ehhez szükség van a mikroszámítógép szo-

kásos elemeire (CPU, RAM, ROM), valamint a külvilággal való kapcsolattartás eszközeire. A

bemeneti, ill. kimeneti vonalak kezelésére négyféle módszer terjedt el:

− a bemeneti/kimeneti eszközök a processzor párhuzamos perifériaillesztőin keresztül

kapcsolódnak a cím-, adat- és vezérlősínre;

− a bemeneti/kimeneti vonalak kezelésére egy külön I/O sínt állítanak elő kifejezetten az

I/O kezelésére, tekintettel a moduláris felépítés be/ki vonalainak nagy számára, a terhelési viszo-

nyaira stb.;

távoli I/O kezelés (lásd a 2.2.5. szakaszban);

− terepi, soros jellegű buszrendszer szervezésű I/O kezelés (lásd a 4.6. alfejezetben).

Az első megoldást főként kompakt PLC-khez használják, ahol a kevés be/ki vonal miatt a

külön I/O sín kialakítása nem indokolt. Egy tipikus, mikroprocesszor alapú PLC hardverét mu-

tatja a 2.9. ábra.

Látható, hogy a be/ki vonalak kezelésére egy külön I/O sín használatos. Az ábra egyes

blokkjai korábban egy-egy fizikai egységet alkottak (egy-egy kártya), ma viszont az integrálási

technológia fejlődésével elérhető, hogy a CPU, RAM, ROM, I/O meghajtót egyetlen kártyán

helyezik el, miáltal a CPU buszrendszere előnyösebben és biztonságosabban alakítható ki.










































































2.9. ábra. Egy mikroprocesszor alapú PLC általános sémája



Az általános célú mikroprocesszor alapú PLC-k hardverét szemlélteti a 2.10., ill. 2.11.

ábra három példája gyártott készülékek alapján. A 2.10a ábrán Z180 típusú mikroprocesszorral

működő, kompakt kategóriájú PLC egyszerűsített vázlata látható [11]. A PLC 32 darab bitenként

programozható digitális be/ki vonalat és négy analóg bemenetet tartalmaz. A kártya külön be/ki

sínt nem tartalmaz, a konfiguráció nem bővíthető.

A 2.10b ábrán egy 68340 típusú mikroprocesszor felépítésű kompakt PLC hardvere látha-

tó [12].



























































2.10. ábra. Egy Z180 (a) és egy 68340 (b) típusú mikroprocesszoros kompakt PLC

hardverfelépítése


P Program, TX Text (szöveg), F Flags (flegek), T Timers (időzítők), CLOCK Real-time Clock (valós idejű óra),

Vol Volatile (felejtő), DB Data Bloks (adatblokkok), C Counters (számlálók), NVol Non-volatile (nem felejtő),

R Registers (regiszterek)

A 2.10. ábrából jól kivehetők a mikroszámítógép-rendszer fő elemei: CPU, memóriák,

flegek, időzítők, számlálók, megszakításkezelő egység, valós idejű óra, be/ki elemek stb. A be/ki

vonalak kezelését itt is külön I/O BUS-szal oldották meg.






Az említett PLC főbb hardverjellemzői:

− processzor típusa: µC 68340;

− I/O-k száma: max. 128 digitális;

− felhasználói memória: min. 32 kB RAM a program-, szöveg- és adatblokk tárolására;

− flegek: 8192 1 bit (programozható felejtő-, ill. nemfelejtő-változatra);

− adatregiszterek: 4096 32 bit (nemfelejtő);

− gyors változású bemenetek: 2 megszakításkérés a gyorsszámláláshoz (max. 1 kHz);

− kimenetek: 0,5 A / 24 Vdc.

A moduláris felépítésű programozható vezérlőre példaként egy 80C167 típusú mikropro-

cesszorral gyártott típus hardverét mutatja a 2.11. ábra           [10], amelyen a négy 16 bites általános

célú regiszter és a négy jelzőbit (N előjel, O túlcsordulás, C végső átvitel, Z zérus) is található,

amelyek a programozó által elérhetők.



































2.11. ábra. A 80C167 típusú mikroprocesszorral gyártott PLC hardvere

A rendszer alapkonfigurációja 128 kbájt RAM-ot és 128 kbájt Flash EPROM-ot tartal-

maz. A RAM az alábbi funkciók ellátására szolgál: merker (M), időzítés (T), számlálók (C),

adatmező (DB), rendszer-RAM funkció, stack-RAM funkció. A be/ki egységek itt is külön I/O

buszra csatlakoznak. A moduláris PLC rack-jének hátlapján kialakított rendszersín (SYSTEM

BUS) további hardveregységek csatlakoztatására szolgál. A központi egység három megszakí-

táskérés kezelését biztosítja. A példabeli PLC a be-, ill. kimeneteket I/O RAM egységen keresz-

tül kezeli.

A nagyméretű és bonyolult rendszerek irányításához rendszerint több processzort alkal-

maznak, amelyek egy-egy speciális funkciót látnak el. Egy ilyen többprocesszoros PLC felépíté-

sét szemlélteti a 2.12. ábra, ahol a főprocesszor (Main Processor) 16 bites szóprocesszor.























2.12. ábra. A többprocesszoros PLC felépítése

A matematikai műveleteket a matematikai processzor, a kommunikációs funkciókat a

kommunikációs processzor vezérli. Emellett a nagyszámú távoli I/O kezelést és a PID szabályo-

zási algoritmust is külön processzor végzi. Ezek a processzorok rendszerint mester-szolga

(master-slave) kapcsolatban állnak a főprocesszorral. A mester-szolga rendszerű kommunikáció

esetén a szolgaprocesszorok csak a mesterrel állnak kapcsolatban, egymással nem. Napjainkban

a decentralizált irányítási módszerek kerülnek előtérbe.


2.2.5. Távoli be/ki modulok

A programozható vezérlők speciális kiegészítő egységei a távoli be/ki (I/O) modulok. A távoli

I/O kezelés (Remote I/O, RIO) a nagyszámú be/ki vonal esetén indokolt, különösen akkor, ha az

I/O eszközök távol vannak a PLC-től. Ilyenkor a központi PLC rack rendszerint tartalmaz egy

távolsági I/O rack-et (remote I/O rack), amely soros kommunikációval kezeli a távoli be/ki vona-

lakat. A távoli I/O modulokkal ellátott PLC felépítését szemlélteti a 2.13. ábra.

























2.13. ábra. Távoli be/ki vonalak kezelése (RIO)







A soros kezelésű távolsági I/O modulok által kezelt be/kimenetek feldolgozási ideje és

válaszideje nagyobb, mint a normál be/ki jeleké. A távoli I/O-k kezeléséhez rendszerint szükség

van egy járulékos egységre, amint azt a 2.14. ábra mutatja [6].





























2.14. ábra. Járulékos egység a RIO-hoz

A PLC adatfeldolgozása és a távoli I/O rack-ek soros lekezelése rendszerint nincs szink-

ronizálva.


2.3. Kétállapotú bemeneti és kimeneti egységek

A PLC-k központi műveletvégző egysége kétfokozatú beviteli/kiviteli egységen keresztül tartja a

kapcsolatot a külvilággal, azaz a technológiai folyamat jeladó ill. beavatkozószerveivel. A CPU-

val rendszerint egy belső be/ki egység (multiplexer vagy I/O port) révén, a sínrendszeren keresz-

tül történik az adatforgalom. A belső I/O egységek tápfeszültsége megegyezik a CPU tápfeszült-

ségével.

A belső I/O egységek bemeneteire kapcsolódhatnak:

− a PLC-hez kapcsolódó kétállapotú eszközök, amelyek táplálása közvetlenül a CPU táp-

feszültségéről történik, ezért galvanikus leválasztást nem igényelnek (pl. kezelőszervek, billen-

tyűzet);

− a technológiáról érkező terepi jellegű eszközök, amelyekre jellemző, hogy táplálásuk

nem egyezik meg a CPU táplálásával. Amíg a CPU központi processzora rendszerint 5-15 V,

addig a működtetőszervek ettől rendszerint eltérő táplálást igényelnek (pl. 24 Vdc, 48 Vdc, ill.

24 Vac, 230 Vac). A különböző feszültségek keveredésének megakadályozása céljából galvani-

kus leválasztású bemeneti, ill. kimeneti illesztőket használnak. A galvanikus leválasztást

optocsatolóval oldják meg. Ennek főként zavarvédelmi, villamos és biztonságtechnikai (érintés-

védelmi) előnye van. A bitprocesszor, ill. szóprocesszor alapú PLC-k bemeneti, ill. kimeneti

egységei csak a szervezés módjában térnek el. A bitprocesszor a be-, ill. kimeneteket bitenként, a

szóprocesszor bájtonként/szavanként kezeli.

Bitszervezésű kétfokozatú bemeneti egységet szemléltet a 2.15. ábra.


























2.15. ábra. Kétfokozatú bitszervezésű beviteli egység felépítése

A kétállapotú kapcsolók jele a zavarójeleket szűrőfokozaton át az optoleválasztású be-

meneti fokozaton keresztül továbbítja a PLC által címezhető beviteli elemre, amely lehet port

vagy   multiplexer. Látható, hogy a bemeneti fokozat nem tartalmaz tárolóelemet. Tárolóelem

akkor szükséges, ha fontos az azonos idejű mintavételezés. Ilyenkor egy parancs (utasítás) hatá-

sára a PLC összes bemenetének állapotát egy RAM-memória tárolja. Ilyen bemeneti fokozatot

használnak a gyorsan változó jelek feldolgozásakor.




























2.16. ábra. Bitszervezésű kétfokozatú kimeneti egység felépítése

Bitszervezésű kétfokozatú kimeneti egységet mutat a 2.16. ábra, ahol az adat a CPU-tól a

mikroprocesszor kiviteli portján át egy tárolóelemre kerül (D flipflop, D latch). A kimeneti fo-

kozathoz a tárolóelem elengedhetetlen, ez tárolja ugyanis a program által előírt és a CPU által

létrehozott eredményt (1 bit) két mintavételezés között.





A bájtszervezésű processzorral felépített PLC bemeneti fokozatának illusztrálására a 2.11.

ábrán bemutatott PLC bemeneti fokozatát a 2.17. ábrán [10], kimeneti fokozatát a 2.18. ábrán

[10] mutatjuk be.























2.17. ábra. Bájtszervezésű bemeneti fokozat



























2.18. ábra. Bájtszervezésű kimeneti fokozat

A 2.18. ábrán látható, hogy mind a bemeneteket, mind a kimeneteket az ún. I/O RAM-on

keresztül kezelik. Az I/O RAM-ok írása a program végén PE (page-end character, lap vége) jel-

lel ciklikusan történik.

A galvanikus elválasztás − azaz a működtetőfeszültségek közös vonatkoztatási pontjának

szétválasztása − zavarvédelmi tulajdonságát a következők alapján érthetjük meg. A bemeneti, ill.

kimeneti eszközök rendszerint a technológiai berendezések (motorok, mágneskapcsolók, szele-

pek stb.) közelében (a terepen) vannak elhelyezve, így induktív és kapacitív úton különböző za-

varójelek szuperponálódnak ezen vezetékekre. Galvanikus elválasztás nélkül ezek a zavarójelek

a CPU tápfeszültségére jutnának.



A CPU-t egy kristályoszcillátor működteti. Galvanikus elválasztás nélkül a zavaróimpul-

zusok katasztrofális hibát okozhatnak a CPU működésében (pl. akaratlan memóriaírás, -olvasás).

A 2.19. ábra szerinti szétválasztás a bemeneti és kimeneti oldalon védetté teszi a CPU működését

a külső zavaroktól és véd az esetleges áramütéstől.












2.19. ábra. A galvanikus elválasztás elve

Az optocsatoló (optoizolátor) egy közös tokba épített fényemittáló diódából és egy fotó-

tranzisztorból áll. Optoleválasztású bemeneti fokozatot szemléltet a 2.20. ábra.


































2.20. ábra. Egyenáramú és váltakozó áramú bemeneti fokozat

A 2.20a ábra az egyenáramú galvanikus elválasztást mutatja. Az R ellenállás a tápfe-

szültség értékétől függ és a LED dióda áramának beállítására szolgál. Rendszerint 5 V, 12 V, 24

V, ill. 48 V tápfeszültséget használnak.

A 2.20b ábra váltakozó áramú jel galvanikus elválasztását mutatja. Az R1 a megfelelő

áram beállítására szolgál, míg az R2, C1 a váltakozó komponens szűrését végzi (50 ms). A PLC

bemeneti kártyájának előlapján a bemeneti állapot információját rendszerint LED-diódával visz-

szajelzik.






Galvanikus elválasztású tranzisztoros kimeneti fokozatot szemléltet a 2.21. ábra.

















2.21. ábra. Galvanikus elválasztású tranzisztoros kimeneti fokozat

A 2.21. ábrán a kellő erősítéshez Darlington-fokozatot alkalmaznak. A D1 dióda az ellen-

tétes áramimpulzus vágását végzi. A PLC I/O kártyán rendszerint 16 vagy 32 ilyen kimeneti

egységet helyeznek el. A különböző kimeneti szervek villamos sajátosságait a felhasználónak

figyelembe kell vennie, pl. izzólámpa esetén a hőmérséklettel változó ellenállás, induktív terhe-

lés (relé, mágneskapcsoló) esetén a kikapcsoláskor fellépő feszültség-visszalökés.

Váltakozó áramú galvanikus leválasztású kimeneti fokozatot szemléltet a 2.22. ábra, ame-

lyen kimeneti kapcsolóként triakot alkalmaznak. A triak a váltakozó feszültség "0" átmeneténél

kapcsol ki, így csökkenti az induktív terhelés kikapcsolásánál fellépő nemkívánatos zavaró-

jeleket.

















2.22. ábra. Triakos felépítésű kimeneti fokozat felépítése

A váltakozó áramú hálózatokban egyre elterjedtebben használják a félvezető reléket

(Solid State Relay, SSR). A félvezető relék (FR) egyfázisú kivitelben készülnek. Blokksémasze-

rű felépítésüket a 2.23. ábra szemlélteti.













2.23. ábra. Félvezető relével megvalósított kimeneti fokozat




A vezérlőkör zajszűrőkből és optikai csatolóból áll. A szűrőkör feladata annak megakadá-

lyozása, hogy a rövid idejű zavaróimpulzusok bekapcsolják az FR-t. A vezérlőjel (3... 24 V kö-

zötti egyenfeszültségű jel) az optocsatolón át a zérusdetektorra jut, amely annak megjelenését

követően a hálózati feszültség első nullátmeneténél kapcsolja be a triak vagy a szembekapcsolt

tirisztor vezérlésével a terhelést. Az FR a hálózati feszültségre szuperponált túlfeszültség-

impulzusok korlátozása céljából        túlfeszültség-védelemmel is el van látva. A félvezető relé gyu-

fásdoboznyi méretű eszköz, jó hővezető tulajdonságú, de villamosan szigetelő műgyantával van

kiöntve és csatlakozókapcsai kiv telével feszültségmentes. Félvezető relékke kapcsolt áromfá-

zisú fogyasztót szemléltet a 2.24. ábra.
















2.24. ábra. Háromfázisú fogyasztó működtetése félvezető relékkel

A közepes teljesítményű félvezető kapcsolóelemek közül régebben a bipoláris tranzisz-

tort alkalmazták a leggyakrabban. Különösen előnyösek az egy tokba integrált kapcsolóerősítők,

amelyek közül példaként a TOSHIBA típusának jellemző adatai:

− kapcsolt áram 100 A;

− kapcsolt feszültség 300 V;

− áramerősítés 100.

A tranzisztoros kimeneti fokozatot rendszerint rövidzárvédelemmel látják el.

A bipoláris tranzisztorokat egyre inkább kiszorítják az utóbbi években megjelent                   térve-

zérlésű teljesítménytranzisztorok (POWER FET-ek), amelyek VMOS technikával készülnek és

igen jelentős műszaki előnyei vannak. Bekapcsolt állapotban az ellenállásuk hőmérséklet-

tényezője pozitív, ezért melegedés hatására ellenállásuk nő és korlátozza az áramot, így nem

léphet fel a bipoláris tranzisztorokra jellemző "termikus megfutás". Ezek a tranzisztorok közvet-

lenül párhuzamosan kapcsolhatók. További előny a több nagyságrenddel nagyobb áramerősítés

a

p

ményigény, ezért logikai jelekkel közvetlenül vezérelhetők.


2.4. Számlálási/időzítési funkciók

A számlálási funkció megvalósítására a PLC-k fejlődése során szoftver-, ill. hardverúton megva-

lósuló számlálók születtek. Ez a két megoldás a strukturális különbözőségen túl a számlálható

frekvencia maximális értékében is eltér a hardveres megoldás javára.

A szoftverúton történő számláló hardverfeltétele egy, a mikroprocesszor által kezelt

RAM-memória (esetleg regiszter). Ezt szemlélteti a 2.25a ábra, amelyen egy-egy számlálót (C0,

C1, C2...) a RAM-memória bájtja vagy szava reprezentálja. Az ábrán a számláló működtetéséhez

szükséges funkciók is láthatók: számlálóbemenet (C), törlésbemenet (R), párhuzamos feltöltés

(L).







Különböző megoldásokat dolgoztak ki az időzítési funkciókra is. Korábban a PLC kime-

nete által működtetett analóg/digitális időzítőket, hosszabb idejű késleltetéshez kapcsolóórákat

alkalmaztak.

Napjainkban az időzítési funkciókat a PLC óragenerátor frekvenciájának szoftverúton

történő osztására vezetik vissza. Ennek hardverfeltétele megegyezik a számlálóéval, azaz a CPU

által kezelt és erre a célra fenntartott RAM memóriaterület a hozzá tartozó indítási (S), ill. a

kezdetiérték-betöltési (L) funkció biztosításával (2.25b ábra) [10].


















2.25. ábra. Számláló- (a) és időzítő- (b) funkciók a RAM-ban

A számlálási, ill. időzítési funkciók hardverfeltételéhez nagymértékben hasonlít a

MERKER-memória kezelése is. Ezt szemlélteti a 2.26. ábra.













2.26. ábra. MERKER-memória illesztése a buszvonalhoz

A fenti funkciókat rendszerint a 2.27. ábra szerint, a RAM-memória részeként adják meg.

Természetesen a RAM-térképek további funkciókat is tartalmaznak.















2.27. ábra. PLC RAM térkép









Irodalomjegyzék

Ajtonyi I.: Vezérléstechnika II.

Budapest, Tankönyvkiadó, 1985.

Juhász G., Nagy I. (ford): Informatika és ipari elektronika.

Budapest, Műszaki Könyvkiadó, 1997.

Demmel L., Molnár T., Török B., Vágvölgyi G.: Programozható logikájú vezérlések.

Budapest, Mérnöktovábbképző Intézet, 1989.

Tverdota M., Harkay T.: Villamos vezérléstechnika.

Budapest, KKMF, 1998.

E. A. Parr: Programmable Controllers - An Engineer's Guide.

Newness, 1996.

Ian G. Warnock: Programmable Controllers Operation and Application.

Prentice Hall International, 1988.

IEC-1131/I-IV. szabvány, 1992.

OMRON: CPM PLC Felhasználói kézikönyv, 1999.

SIEMENS: SIMATIC S7-200 Programmable Controller System Manual, 1999.

[10] BOSCH: PLC gépkönyv, 1997.

[11] Z'WORLD: BL1500 User's Manual, 1990.

[12] SAIA: Process Control Devices PCD2 Series, 1993.

[13] Ajtonyi I.: Digitális rendszerek.

Miskolc, Egyetemi Kiadó, 1998.



Találat: 4055


Felhasználási feltételek