Kandó Kálmán Villamosmérnöki Kar

Méret: px
Mutatás kezdődik a ... oldaltól:

Download "Kandó Kálmán Villamosmérnöki Kar"

Átírás

1 Zalotay Péter Programozható irányítások I. Elektronikus jegyzet Kandó Kálmán Villamosmérnöki Kar

2 Tartalomjegyzék Bevezetés...4 I. R É S Z...6 Az irányítástechnika rendszertechnikai összefoglalása Alapismeretek Alapfogalmak Az irányító rendszer és feladatai Vezérlés Szabályozás Adatok gyűjtése tárolása Irányítási rendszerek felépítése Egyedi irányítások Csoportos irányítások Strukturált irányítások Az irányított rendszer felosztási módozatai Irányítások megvalósítása...17 II. R É S Z...18 Az irányítástechnikában alkalmazott programozható hardver készülékek Programozható logikai áramkörök (PLD) Egyszerű programozható logikai eszközök Komplex programozható logikai eszközök Felhasználó által programozható kapu mátrix GAL eszközök Mikroprocesszoros irányító berendezések Általános célú mikrogépek és a mikrokontroller MCS51 és a PIC mikrokontrollerek felépítésének összehasonlítása Digitális perifériák Portok Oszcillátor Időzítők-számlálók Számlálók alkalmazásai Analóg perifériák Soros kommunikáció A programozható logikai vezérlők (PLC) alkalmazása Történeti áttekintés Az alkalmazott három PLC típus összehasonlítása Hardver kialakítás A tápegység A CPU Diszkrét I/O illesztők Analóg illesztők A memória...59 III. R É S Z...60 Irányítástechnikai programok tervezése, fejlesztése Programfejlesztés A programozás célja A programfejlesztés lépései A programfejlesztés eszközei Programszerkezetek A PLD -k programozása oldal

3 6. Az I8051 mikrokontroller család C - nyelvű programozásának alapjai Változók és deklarálásuk: Operátorok: Utasítások: Ciklusszervező utasítások: Elágazást vezérlő utasítások Ciklust módosító utasítások Az élőfeldolgozó (preprocesszor) utasításai Függvények Függvények definíciója és deklarációja Példa: Programfejlesztői környezetek A 8051/31 család programfejlesztői környezete CX-Programmer Schneider Electric Unity Pro XL Siemens Step A PLC k programozási nyelvei A PLC típusonkénti programozás A PLC programozási nyelvek szabványosítása A létradiagram az LD (Ladder Diagram) nyelv Az FBD (Function Block Diagram) nyelv Utasítás listás IL (Instruction Logic) nyelv Az SFC (Sequential Function Chart) nyelv IV. R É S Z Kombinációs és sorrendi vezérlések programozása Vezérlések programozása A tervezés lépései Kombinációs vezérlések A feladat változóinak meghatározása A kiinduló adatok, megadása, felvétele A legegyszerűbb logikai függvény meghatározása A numerikus eljárás bemutatása Grafikus egyszerűsítés (ellenőrzés!) Kombinációs vezérlési feladatok programozásának tervezése A lehetséges programozási algoritmus meghatározása Bit műveletekkel Táblázatos módszer Sorrendi vezérlési feladatokat megoldó program tervezése Állapotgráf Állapottáblázat A kimeneti-, és vezérlő táblázat A tervezés A tervezés lépései: Általános célú mikrogépek programozása A sorrendi vezérlések programozása adatbázis alapján PLC programozása A programírás Példák sorrendi vezérlések programozására Forgalomirányító lámpák vezérlése Folyadéktároló tartályok töltésének, ürítésének vezérlése oldal

4 Bevezetés A jegyzet az Automatika szak, Programozható irányítások és Járműelektronika modul egyik államvizsga tantárgy szükséges ismeretanyagának első részét (Programozható irányítások I.) tartalmazza. Az írott anyag célja az előadási témák összefoglalása, valamint laboratóriumi gyakorlatok eredményes elvégzését segíteni. A tanév során megismertetjük a hallgatókat a korszerű irányítási feladatokra alkalmas berendezések hardvereivel. Párhuzamosan jártasságot kívánunk kialakítani a megismert eszközök működtető programjainak fejlesztésében. A mérések és a példák jellemző irányítási feladatok. Az írásos anyag négy fő részre tagolt. Az I. rész ismétlésszerűen összefoglalja az irányítástechnikai alapfogalmakat. Az első fejezet az irányítástechnika rendszertechnikai alapjait összefoglaló ismétlés. A II. részben foglalkozunk az irányítástechnikában használt hardverek ismertetésével. A második fejezetben a teljesség igénye nélkül foglalja össze a programozható hardverek (PAL, GAL) legfontosabb jellemzőit. A harmadik fejezet foglalkozik a 8051 család mai mikrokontrollereiben, ugyanakkor más mikrovezérlőkben is alkalmazott digitális és analóg illesztő áramköreivel. Áttekintést nyújt az osztott intelligenciájú rendszerekben nélkülözhetetlen és legjobban elterjedt soros kommunikációs megoldásokról. A negyedik fejezet bővebben foglalkozik az automatizálás mind szélesebb területein alkalmazott PLC k (Programozható Logikai Vezérlők) működésével, konfigurációival. A II. tanév során az Automatika II tantárgyban megismert Siemens S7 300 család mellett az Omron CJ1M, valamint a Schneider Electric M340 típusú vezérlőivel. A III. rész tartalmazza az irányítási feladatok programozási ismereteit. Az ötödik fejezet szolgál a szisztematikus programfejlesztés módszereivel. Összefoglalást nyújt a programozásokban alkalmazott tipikus programszerkezetekről. A javasolt eljárások alkalmazhatók a mérésekben alkalmazott modellek működtető programjainak fejlesztésénél. A hatodik fejezetben a 8051 mikrokontroller (mikrovezérlő) család C -nyelvű programozásának alapjait foglalja össze. Az anyag alapoz a korábbi tanulmányok során megismert C nyelvi programozási ismeretekre. Az assembly és C -nyelvű példák melletti folyamatábrák alapján a PLC programozás is elvégezhető. A fejezetben foglalkozunk programozásokhoz használt Programfejlesztői Környezetükkel. Mindhárom PLC család tagjainál az IEC szabványajánlás szerintő öt programozási nyelv használható. 4.oldal

5 A IV. rész témaköre a vezérlések programozása. A befejező hetedik fejezet a kombinációs-, és sorrendi vezérlések programfejlesztésének módszereit, eljárásait ismerteti példák alapján. A példák mikrogépekre és PLC -kre mutatják be a programokat. 5.oldal

6 I. R É S Z Az irányítástechnika rendszertechnikai összefoglalása. 6.oldal

7 1. Alapismeretek Bevezető fejezetként összefoglaljuk a technológiai folyamatok automatikus irányításával kapcsolatos alapismereteket, a különböző irányítási megoldások rendszertechnikai felépítését Alapfogalmak Irányítás: Műszaki berendezések (gépek, gyártó sorok, szállító eszközök, vegyi-, hőtechnikai folyamatokat előállító rendszerek stb.) meghatározott feladatok ellátására történő működtetése (indítás, változtatás, leállítás). Irányítási rendszer: Az irányított-, (folyamat) és az irányító rendszer együtt (1. ábra). Irányító rendszer: 1. ábra Mindazon szervek, készülékek összessége, amelyek együttműködése révén a folyamat irányítása megvalósul Az irányító rendszer és feladatai A folyamat jellemzőinek a technológiai előírásoknak megfelelő változtatását végzik az irányító rendszerek. Alapvetően vezérlést, szabályozást és mérés-adatgyűjtést végeznek. 7.oldal

8 Vezérlés Műszaki folyamatok, technológiák automatikus irányításának viszonylag egyszerűbb változata a vezérlés. Ennél az irányításnál az irányított folyamat jellemzőit (paramétereit) csak a parancsok, és a feltételek meghatározott logikai kapcsolata, valamint időbeli változása módosítja. A vezérlés elemei közötti kapcsolatot az irányítás hatáslánca (2. ábra) szemlélteti, amely nyitott. Ez azt mutatja, hogy a változtatott jellemző értéke nem módosítja a vezérlés működését. Rendelkező jel beavatkozó jel módosító jel Anyag, energia Feltétel-, és parancsadók x r x b x m Vezérlő egység Beavatkozó szerv Vezérelt szakasz x z Zavaró jelek Anyag, energia A vezérlés legfontosabb elemei: 2. ábra Parancs-, és feltételadók: Azok az elemek - kezelő szervek (kapcsolók, nyomógombok stb.), - jeladók (végállás kapcsolók, szintadók stb.) amelyek működtetése, vagy állapota indítja el az irányított jellemző módosítását, állapotváltozását. Ezek szolgáltatják a vezérlő bemeneti-, vagy rendelkező jeleit (X r ). Vezérlő egység: Ez az egység határozza meg a vezérlés működését. A működés mindig leírható a be-, és kimeneti jelek közötti logikai kapcsolatokkal (logikai függvényekkel). 8.oldal

9 A vezérlő egység tehát egy logikai áramkör, amelynek bemeneti jelei a rendelkező jelek és kimeneti jelei a beavatkozó jelek (X b ). Beavatkozó szervek: A vezérlőben előállított jelek rendszerint alacsonyabb energiájú, vagy más fizikai jelek, mint amelyekkel módosítani lehet az irányított jellemzőt. Pl. ahhoz, hogy egy villamos motor tengelye forogjon (mozgási energia), feszültséget (villamos jel) kell kapcsolni a tekercsire. A beavatkozó szerv feladata a beavatkozó jelek energiájának változtatása, vagy fizikai jelátalakítás után a beavatkozó jellel arányos - módosító jel ( X m ) előállítása. Vezérelt szakasz: Az irányított folyamatnak rendszerint csak egy részét, néhány paraméterét kell a vezérlés segítségével változtatni, módosítani. Ezt a paraméter csoportot nevezik vezérelt szakasz nak. Például: egy lift vezérlése az irányított folyamat. A kabin emeléséhez, vagy leeresztéséhez a hajtó motort kell működtetni. Itt tehát a motor a vezérelt szakasz Szabályozás Az irányításokban a szabályozás feladata, hogy az irányított folyamat valamelyik, vagy több jellemzőjét az un. alapjel által meghatározott értéken tartsa. A szabályozás elemei közötti kapcsolatot az irányítás hatáslánca (3. ábra) szemlélteti. 3. ábra 9.oldal

10 Ez a hatáslánc visszacsatolt (zárt). A visszacsatolás révén határozható meg a mindenkori szabályozott jellemző és az alapjel eltérése. Ez az eltérés szabja meg, hogy milyen mértékben, és irányban kell beavatkozni a folyamatba. Azon egységek (szervek) összességét, amelyek a vázolt feladatot egy irányításon belül ellátják, nevezik szabályozó nak. A szabályozó működésének lényege leegyszerűsítve az, hogy a szabályozott jellemző nem kívánt változását megszünteti. Ezt oly módon hajtja végre, hogy a változással ellentétes irányú beavatkozó jelet állít elő, amely hatására a szabályozott jel eredeti értéke helyre áll. Természetesen a valós környezetben nagyon sok olyan zavaró hatás van, amely véletlenszerűen vagy állandó jelleggel változtathatja az irányított szakasz jellemzőit. Ezért csak elméletileg lehet valamely fizikai, műszaki paramétert előre meghatározott pontos értéken tartani. A szabályozás mindig valamilyen hibával, illetve késéssel képes a külső zavaró jel hatását kiküszöbölni. Mind a maradó hiba abszolút nagysága mind, pedig a hiba mértékének változása függ a szabályozó működésének jellegétől, illetve a szabályozott szakasz tulajdonságától. A műszaki gyakorlatban, egy berendezés automatikus irányításánál a feladat mindig úgy fogalmazódik meg, hogy egy működési jellemző zavaró jel hatására bekövetkező változását lehetőleg minél kisebb hibával, minél gyorsabban kell megszüntetni. Természetesen a szabályozási hiba csökkentésének, illetve a szabályozási sebesség növelésének műszaki és gazdaságossági korlátai vannak. A leírtakból következik, hogy egy szabályozás helyes tervezéséhez a szabályozási kör minden elemének tulajdonságait ismerni, és figyelembe kell venni. Egy jól működő szabályozás megtervezése, megvalósítása komoly műszaki feladat, és csak a szabályozáselmélet alapos ismeretének birtokában, illetve mérési, üzembe helyezési gyakorlattal végezhető el. A szabályozó elemei (szervei), és azok feladata: Alapjel képző szerv: Az alapjel-adó állítja elő az Xa alapjelet, amely meghatározza, hogy a szabályozónak milyen értékre kell beállítania az Xs szabályozott jelet. Miután a szabályozó az alapjelhez viszonyítottan avatkozik be a folyamatba, ezért biztosítani kell e jel zavarmentességét. 10.oldal

11 Érzékelő: Ez az egység állítja elő a szabályozott jellemző mindenkori értékével arányos x e ellenőrző jelet. Az ipari szabályozási körökben alkalmazott érzékelők legtöbbje tulajdonképpen olyan egység, amely az érzékelt fizikai mennyiséggel arányos szabványos villamos jelet állít elő. Ezeket nevezik távadónak. A távadók egyik csoportjánál a kimeneti feszültség, míg másik részüknél a kimeneti áram arányos a mért jellemző értékével. Feszültség kimenet esetében a 0 10 V, -10 V 10 V, míg áramkimenetnél a 4-20 ma a leggyakrabban használt szabványos érték. Különbségképző szerv: A szabályozás végrehajtásához meg kell állapítani azt, hogy milyen mértékben tér el a szabályozni kívánt jellemző a névleges értéktől. A különbségképző szerv az alapjel (x a ), és az ellenőrző jel (x e ) előjeles különbségét állítja elő az x h hibajel -et. Kompenzáló szerv: A szabályozás minőségét, jellegét meghatározó egység a kompenzáló szerv. A megfelelő jelmódosításhoz nem csupán a pillanatnyi hibát, hanem a szabályozott szakasz fizikai tulajdonságait is figyelembe kell venni a módosító jelbe. Ezek együtt határozzák meg, hogy milyen gyors, pontos, illetve stabilis lesz az irányított rendszer. A kompenzáló szerv által előállított x b beavatkozó jel változása fogja meghatározni a módosítás szükséges jellegét, és mértékét. Beavatkozó szerv: A szabályozó jelei rendszerint alacsonyabb energiájú, vagy más fizikai jelek mint amelyekkel módosítani lehet az irányított jellemzőt. Pl. ahhoz, hogy egy villamos motor tengelyének forgása a szabályozott jellemző - ( mozgási energia ) változzon, a tekercsein folyó áramot ( villamos jel ) kell módosítani. A beavatkozó szerv feladata a beavatkozó jelek energiájának változtatása, vagy fizikai jelátalakítás után a beavatkozó jellel arányos - módosító jel ( x m ) előállítása. 11.oldal

12 Szabályozott szakasz: Az irányított folyamatnak rendszerint csak egy részét, néhány paraméterét kell a szabályozó révén változtatni, módosítani. Ezt a paraméter csoportot nevezik szabályozott szakasz nak. Például egy daru gémjének állandó sebességű mozgatása az irányított folyamat. A teher emeléséhez, vagy leeresztéséhez a hajtó motor fordulatszámát kell a terhelés nagyságától függetlenül állandó értéken tartani. Itt tehát a motor a szabályozott szakasz Adatok gyűjtése tárolása. Mérésadatgyűjtésnek azt az automatikus méréssorozatot nevezzük, amely az irányított folyamat kiválasztott jellemzőinek értékét - meghatározott idő-pontokban (mintavételezés időpont) - leméri és azokat egy adatbázisba, írja. 4. ábra A mintavételezés általában minden mért jellemzőnél azonos. Akkor, ha az egyes jellemzők változási sebessége nagyságrendekkel különbözik a mérési időpontok gyakoriságát is célszerű eltérőnek választani. A mérésadatgyűjtő elvi felépítését mutatja a 4. ábra. Érzékelők-távadók: Ezek állítják elő a mért jellemzők mindenkori értékével arányos jeleket. A mért értékek egy - egy része lehet analóg, vagy digitális. 12.oldal

13 Méréspont váltó: Ez az egység választja ki, hogy melyik a mért érték kerül tárolásra, további feldolgozásra. A/D átalakító: Az analóg értékeket alakítja a tároláshoz szükséges digitális formájúvá. Illesztők: Ezek az egységek illesztik a további feldolgozáshoz, kijelzéshez a mért adatokat. Tárolók: Az automatikus adatgyűjtés eredményét, az adatbázist tárolják. A tárolási feladattól függően használnak különböző adathordozókat. Az osztott intelligenciájú irányítási rendszerekben a mérésadatgyűjtés szolgáltatja az alapadatokat - az irányítási stratégia meghatározásához, - az irányítás végrehajtásához, - a naplózáshoz, - az ellenőrzéshez, - a hibadiagnózishoz, stb Irányítási rendszerek felépítése A fejezetben tömören tárgyaljuk az irányítási rendszerek felépítésének lehetséges megoldásait. A csoportosítás egyik szempontja, hogy a rendszer elemei milyen módon kapcsolódnak egymáshoz. Természetesen a tárgyalt megoldások kevert változatai is megtalálhatók a műszaki gyakorlatban. A leírtak elsősorban a rendszer-szemlélet alakítását szolgálják Egyedi irányítások A gyártósorba szervezett gépek mindegyikét önálló egység (5. ábra) irányítja. Az egyes gépek, gépcsoportok között nincs adatkapcsolat. Ugyanakkor laza kommunikációs kapcsolat segítheti a gyártósor működésének összehangolását. 13.oldal

14 Csoportos irányítások 5. ábra A gyártósorba szervezett gépek irányításának fejlettebb változata. A gépcsoport egyes egyedi irányító egységek egy központi csoportirányító - val tartanak kapcsolatot (6. ábra). A csoportirányító felügyeli az üzemelést, és szükség esetén tartalék egységként is működhet Strukturált irányítások 6. ábra A strukturáltság az önálló egységekből épített rendszert jelöli. Összetett irányító rendszerek Az automatizálás térbeli és funkcionális komplexitásának növekedése csak rendszerszemléletű tervezéssel és kialakítással elégíthető ki. Egy összetett irányítási rendszer hierarchikus szintekre (7. ábra) bontható. A folyamatirányító számítógépekkel valósították meg az ilyen rendszereket. 1. szint: Az irányítandó folyamat és a technológiához közvetlenül csatlakozó mérő, jelátvivő és beavatkozó szervek. (Process). 14.oldal

15 2. szint: A jelek kondicionálását, erősítését és átalakítását (pl. A/D és D/A) végző szervek, az energiaellátó egységek, és a különleges biztonsági elemek. 3. szint: A hagyományos irányítás funkcionális alrendszerei (kézi irányítás, vezérlés, szabályozás, felügyelő - jelző - naplózó egységek). 4. szint: Rendszeroptimalizálás, központi beavatkozások és jelzőrendszer kezelése (Számítógép). Osztott intelligenciájú irányító rendszerek A mikroprocesszoros kis-, és mikroszámítógépek megjelenése és gyors fejlődése eredménye a feladatok megosztása. A hierarchikus szint felépítés feladatai módosulnak. 1. szint: Változatlanul a folyamat és tartozékai (Process). 2. szint: A folyamat egyes részeinél önálló intelligens egységek (mikrogépek) látják el a helyi irányítást, mérésadatgyűjtést, naplózást, megjelenítést (gépközeli szint). 3. szint: Biztosítja a helyi állomások közötti kommunikációs kapcsolatot (adatátviteli alrendszer), és csoportszintű irányítást végez (koordinációs szint). 4. szint: A központi beavatkozó rendszer a felügyelethez, az optimalizációhoz és az operátor állomások kiszolgálásához (felügyeleti szint). 7. ábra 15.oldal

16 Az irányított rendszer felosztási módozatai Az irányított rendszer egységei különböző formában oszthatók el. Az egyes változatok az alábbiak lehetnek. Hely szerinti csoportosítás Az alsó szinten elhelyezkedő készülékek hatásköre csak egy folyamat-egységre vonatkozik, de ott minden feladatot ellátnak (8. ábra). 8. ábra Funkció szerinti csoportosítás). az alsó szinten elhelyezkedő készülékek hatásköre a folyamat egészére kiterjed, de a három fő funkció (szabályozás, vezérlés, felügyelet ) közül csak az egyiket látják el (9. ábra). 9. ábra 16.oldal

17 Komplex (összetett) csoportosítás. A térbeli és a funkcionális elosztás általában összetetten (10. ábra) valósul meg. 10. ábra Irányítások megvalósítása Fajtái: Folytonos rendszerek amelyeknél a jelfeldolgozás idejét csak az alkalmazott áramkörök késleltetése határozza meg. A hagyományos elektronikus (digitális) és relés vezérlések, valamint az analóg szabályozások. Mintavételes rendszerek amelyeknél a jelek frissítése, feldolgozása diszkrét időközönként történik. A mikroprocesszoros irányítások (PLC -k, DDC -k stb.) mindegyike ilyen működésű. 17.oldal

18 II. R É S Z Az irányítástechnikában alkalmazott programozható hardver készülékek 18.oldal

19 2. Programozható logikai áramkörök (PLD) Viszonylag új technológiának számítanak, amelyből számtalan típus jelent meg rövid idő alatt. Már a rendelkezésre álló architektúrák (architektúra alatt értve az eszközök azon tulajdonságait, amelyek a logikai felépítést - ki-és bemenetek száma, programozható tömbök mérete stb.) száma is százas nagyságrendű, ha pedig a különféle technológiai megoldásokat (áramkör-technikai megoldások, sebesség, újraírhatóság, tokozás stb.) is figyelembe véve szeretnénk csoportosítani, akkor a választék már több ezres. Megjegyezendő, hogy nem csak PLD -k segítségével készíthetünk logikai hálózatokat, hanem memória áramkörökkel (PROM, EPROM stb.) is. Ilyenkor a memóriában eltároljuk a megvalósítandó hálózat igazságtáblázatát úgy, hogy az egyes bemeneti kombinációknak megfelelő címeken hivatkozva a memória kimenetén a logikai hálózat adott bemenetre adott válaszát kapjuk. A memória áramkörök használatának több hátránya van: általában nem túl hely- és eszköztakarékos megoldás, különösen sokváltozós függvények esetén, valamint sebességben is elmaradnak a PLD -ktől. A memóriáktól eltérően a PLD -k nem az igazságtáblázatot, hanem magát a logikai egyenletet tárolják programozható mátrixaikban, mivel megfelelően nagy ÉS illetve VAGY mátrixokkal (léteznek PLD -k, amelyek ÉSNEM / ÉSNEM esetleg VAGYNEM / VAGYNEM mátrixokat használnak) bármely logikai függvény megvalósítható Egyszerű programozható logikai eszközök (SPLD - Simple Programmable Logic Device) Ezek az eszközök általában kétszintű logikai hálózatot tartalmaznak, kevesebb, mint 1000 kapuval. Az SPLD -k (és a programozható logikák) első képviselője a PLA (Programmable Logical Array - Programozható Logikai Tömb) volt, sematikus rajza a 11. ábrán látható. Az ÉS illetve a VAGY kapuk egy-egy mátrixon keresztül kapcsolhatóak össze. Léteznek PLA -k, melyek a kimeneteknél beépített flip-flop - kat tartalmaznak, ezáltal felhasználhatóak sorrendi hálózatok megvalósításához is. A PLA eszközök fő hátránya, hogy a két programozható mátrix beépítése egyrészt megdrágítja a gyártást, másrészt az eszköz sebességét is csökkenti, hiszen a jeleknek két mátrixon kell végighaladnia. 19.oldal

20 11. ábra Ezen problémák kiküszöbölésére születtek meg a PAL -ok (Programmable Array Logic - Programozható Tömblogikák), melyekben csupán az ÉS mátrix programozható, a VAGY mátrix nem, emiatt előállításuk olcsóbb, programozásukhoz egyszerűbb hardver szükséges, és sebességük nagyobb. Ezen tulajdonságaiknak köszönhetően, bár kevésbé rugalmasan használhatók, jóval elterjedtebbé váltak a PLA logikáknál. A PAL -ok sematikus rajza az 12. ábrán látható. 12. ábra 20.oldal

21 2.2. Komplex programozható logikai eszközök (CPLD - Complex Programmable Logic Device) Ezek az eszközök gyakorlatilag több, egy tokba integrált, SPLD -nek felelnek meg. Ez a fejlesztési irány meglehetősen új, és számos különféle, nehezen csoportosítható architektúra létezik. A Lattice által gyártott isplsi eszközöknél például az SPLD -nek megfelelő elemeket általános logikai tömbnek (GLB - Generic Logic Block) nevezik, melyek mega-tömböknek nevezett csoportokat alkotnak. Ezen mega-tömbök működését a Globális Vezérlő Áramkör (GRP - Global Routing Pool) hangolja össze Felhasználó által programozható kapu mátrix (FPGA - Field Programmable Gate Array) Az FPGA -k az eddig említett eszközöknél is rugalmasabban programozhatóak. Itt ugyanis (pl. a Xilinx cég FPGA -inál) úgynevezett Programozható Logikai Blokkok (CLB - Configurable Logic Block) alkotnak mátrixot, amelyen belül teljesen szabadon köthetőek össze egymással programozható kapcsolók segítségével. A CLB -k elrendezése típustól függően többféle is lehet, a hierarchikus FPGA -knál például az előbb említett megatömbök -höz hasonlóan SCLB -kbe (Super Configurable Logic Block) csoportosítják a logikai tömböket GAL eszközök A GAL eszközöket (GAL - Generic Array Logic; Általános Tömb Logika) a Lattice Semiconductor fejlesztette ki 1985-ben. Felépítésben a PAL -ok továbbfejlesztésének tekinthetőek, ugyanis a kimeneteken programozható kimeneti áramköröket, más néven kimeneti logikai makrocellákat (OLMC) helyeztek el, (13. ábra) amelynek a VAGY kapuk is részei. Ezek segítségével egyrészt emulálhatóak az egyes PAL típusok különféle kimeneti regiszterei, másrészt az eszköz jóval sokoldalúbban programozhatóvá válik. Ennek eredményeképpen számos PAL típus kiválthatóvá válik az azonos lábszámú GAL IC-k felhasználásával (a gyártó szerint 5 standard GAL típus; a 16V8, 20V8, 22V10, 20RA10 és a 20XV10 képes helyettesíteni a kereskedelemben kapható bipoláris PAL-ok 98%-át), a hozzájuk készült JEDEC biztosíték térkép ugyanis átalakítható a GAL eszköz formátumára. Bizonyos programozó hardverek automatikusan képesek arra, hogy a meglevő PAL JEDEC fájlból közvetlenül felprogramozzák az adott eszközzel felülről kompatíbilis GAL -t. 21.oldal

22 13. ábra Egy makrocella általános felépítése látható a 14. ábrán. 14. ábra A GAL eszközöket főleg TTL logikai áramkörök helyett használják, amelyekből akár 5-10 darabot is kiválthat egyszerre. Tipikus felhasználási területei lehetnek például a busz interfész áramkörök, memóriavezérlők, számlálók stb. 22.oldal

23 A továbbiakban ugyan említem az egyes típusok makrocelláinak kialakítását, üzemmódjait, vezérlő biteket, ezek azonban csak az eszközök működési elvének megismeréséhez szükségesek; ha az isp Design EXPERT fejlesztőprogrammal dolgozunk, akkor ezeknek a beállítását a program önállóan elvégzi. Megjegyezendő, hogy bár a GAL eszközöket a Lattice fejlesztette ki, néhány más cég, például a National Semiconductor vagy az Intel is készít GAL -okat illetve azokkal kompatíbilis logikákat. A továbbiakban kizárólag a Lattice típusairól esik szó. 3. Mikroprocesszoros irányító berendezések Az ipari folyamatok számítógéppel történő megvalósítása, már az 1960-as években kezdődött. Ekkor fejlesztették, ki az un. folyamatirányító számítógépeket. A nagy számítógépek nem tudták megoldani az automatizálás korszerű követelményeit. A környezeti hatások kiküszöbölése, az irányítás sebessége nem valósítható meg ilyen módon. Az évtized végén jelent meg az ipari környezetben jól alkalmazható irányító berendezés a PLC (Programabble Logic Controller, azaz a programozható logikai vezérlő). Az első változatot a MODICON cég fejlesztette ki (Modicon 084). Rövid időn belül számos cég készített PLC -t. A mikroprocesszor megjelenése gyorsította fel az ipari számítógépek, PLC k, DDC k (mikrogépek) fejlesztését, és alkalmazását. A mikrogépek segítségével lehetett megvalósítani a korábban már elméletileg tárgyalt, és javasolt osztott intelligenciájú irányítási rendszereket Általános célú mikrogépek és a mikrokontroller Az általános célú mikrogépek csoportját alkotják azok a mikroprocesszoros digitális számítógépek, amelyek mind számítástechnikai, mind irányítási, vagy egyéb feladatok szoftvertől függő megvalósítására alkalmasak. Az integrálási technológia gyors fejlődése lehetővé tette, hogy egyetlen lapkán (chip) egyre több funkcionális elemet lehessen megvalósítani. A mikroprocesszorok megjelenését követően csökkentett konfigurációjú mikrogépet más néven mikrokontroller (mikrovezérlő) - is gyártottak között mind az Intel, mind a Motorola elkészíti a saját mikrokontroller családját. Az Intel által kifejlesztett 8031/51 mikrokontroller családdal kompatibilis mikro- 23.oldal

24 kontrollereket mindmáig sok gyártó készít. Az alapokat a Digitális technika tantárgyban tanulták. Az 1990-es évtizedben jelentek meg a piacon a Micro Chip mikrovezérlő családja a PIC. A gyártmányaiban alkalmazták először a Flash memóriát, amely akkor lépéselőnyt jelentett a többi kontrollerrel szemben. A jegyzetben elsődlegesen a 8031/51 család legújabb fejlesztési eredményekről adunk áttekintést. A következő fejezetben összehasonlítjuk a két kontroller család jellemzőit A továbbiakban összefoglaljuk a chipbe integrált digitális és analóg perifériák működését, és az alkalmazási lehetőségeket. Ugyanakkor tárgyaljuk a perifériák programozásának módozatait is MCS51 és a PIC mikrokontrollerek felépítésének összehasonlítása A processzorok felépítése alapvetően különbözik. A MCS51-es processzor mag Neumann felépítésű, ami azt jelenti, hogy mind az adat- mind a program memória közös buszra csatlakozik, és ezen keresztül érhetők el. A PIC különálló program- és adatmemóriával rendelkezik. (Harvard felépítés.) 1. Mindkét típus adatmemóriája 8 bites. Az MCS51-es programmemóriája szintén 8 bites, míg a PIC- é bit széles, a családtól függően. 2. Az utasítások hossza az MCS51-es rendszernél egy és három bájt között változik. Az első bájt a műveleti kód, a második bájt az operandus, a harmadik bájt a 16 bites cím operandus második bájtja. A PIC -nél minden utasítás egyszavas, kivéve a 18-as családot, ahol megjelenik négy kétszavas utasítás. Címzési módok: Közvetlen (direkt) címzés: mindkét család támogatja ezt, ahol egy 8 bites cím jelöli ki az operandus - t. Az MCS51-es rendszerben csak a RAM alsó 128 bájtja és az SFR regiszterek címezhetők ilyen módon, míg a PIC -eknél a teljes adatmemória elérhető ilyen módon. Közvetett (indirekt) címzés: mindkét család támogatja ezt a módot, ahol egy regiszter tartalma határozza meg annak a regiszternek a címét, amivel a műveletet el kell végezni. Az SFR memóriaterület az MCS51-nél így nem érhető el, de különben mind a külső és mind a belső memóriaterület elérhető. Három mutató segítségével történik ez a fajta címzés: R0, R1, DPTR.A PIC eszközök mutatóként egy vagy több (3) File Select 24.oldal

25 Regisztert használják erre a célra. (A PIC18-as családnál mutató és elemművelet együttes végrehajtása is lehetséges. Regiszteres utasítások: csak az MCS51-es rendszerben: R0-R7 regiszterek használata, rövidebb utasítások a lokalitás elvének felhasználásával. Regiszter-specifikus utasítások: Az MCS51-es rendszerben számos utasítást csak az akkumulátorban lévő adaton hajthatunk végre (pl. CPL A). A PIC -eknél az utasítások legtöbbje bármelyik regisztert használhatja. Állandó mint operandus (immadiate): mindkettő támogatja Indexelt címzés: MCS51: csak a program memória kezelhető így. A PIC- eknél a program memóriát címző SFR regiszterekkel történik (PCL, PCLATH). A PIC18-as családnál a TBLRD utasítással a programmemória olvasható, illetve a TBLWR utasítással írható. Bitcímzés: az MCS51-es rendszerben maximum 256 a memóriában meghatározott bit címezhető (128 felhasználói, 128 SFR regiszterekben). A PIC -eknél minden bit címezhető. A klasszikus MCS51-es rendszerben csak 384 regiszter lehetett a belső RAM - területen, de ezt a továbbfejlesztésekben megnövelték. Jelenleg a PIC18-as családnál a legnagyobb adatmemória 4 Kbájt lehet Digitális perifériák A fejezetben megismerkedünk - családtól független tárgyalásban - a kontrollerek- ben megtalálható digitális funkciókat, megvalósító perifériákat. Első nagy csoportjuk a Port - ok, amelyek a microchip és a külvilág be-, és kimeneti jeleit illesztik. A második nagy csoport a számlálók és ezekhez csatlakozó funkciók (capture, compare, PWM konverzió stb.) A működés megismerése mellett az alkalmazási lehetőségekről is foglalkozunk Portok A mikrokontrollerek és a külvilág között a Port-okon keresztül történik az adatforgalom. A fejlesztések során különböző illesztő áramköröket alakítottak ki. Legfontosabb közös jellemző, hogy bármelyik port ki-, vagy bementként is használható legyen. A 8031/51 mikrokontroller család első változataiban a 15. ábra szerinti megoldást találjuk. Minden port-bithez egy D tároló tartozik. A Port írásakor a tároló Cp beíró jele aktiválódik. Olvasáskor viszont a lábhoz csatlakozó tri-state áramkör(ök) nyitását vezérli az utasítás. Ennek eredményeként a belső adatbuszra a külső jel kerül. Betartandó feltétel, hogy a 25.oldal

26 bemenetként használt bit tárolójában 1 érték kell legyen. Ugyanez a feltétel a port másodlagos funkciójának használatakor is. Read modify olvasás Másodlagos kimenet Ucc Belső adat busz D T P3.x Port írás Cp & Port olvasás Másodlagos bemenet 15. ábra A 16. ábra a közelmúltban fejlesztett kontroller illesztő áramkörét mutatja. A külső terhelés jellegétől függően mód van Open collector, Push-pull és Weak-pullup (lágy vagy csökkentett impedanciájú) kimenet beállítására. Weak- Pullup VDD Push-Pull 1 VDD Portkimenet Eng. Analóg választ Analóg bemenet & 1 DGND Port bit Portkimenet Portbemenet 16. ábra A gyártástechnológia gyors fejlődése egyre növekvő elemsűrűségű chip- ek készítését tette lehetővé. A nagy elemsűrűség lehetősége, hogy sok funkcionális egység kerül egyetlen tokba. Egy-egy alkalmazásnál nem szükséges mindegyik egységet használni. Így felesleges 26.oldal

27 minden egységhez fix lábkiosztást rendelni. A nagyon költséges kivezetések (lábak) csökkentésére mutat példát a 17. ábra szerinti megoldás. A Digital Crossbar egy kapcsoló mátrix. A kapcsolatok programozásával oldható meg, hogy lehetőleg optimálisan használhassuk a ki-, bemeneti port-biteket. 17. ábra A 18. ábra a PIC család port kialakítását mutatja. A három tároló közül a Data Latch tárolja kiviendő bitet. A TRIG Latch vezérli az írás, vagy olvasás pillanatát. A beolvasott érték pedig a legalsó tárolóba kerül. A port vezérlésekor külön kell megadni az irányt 18. ábra 27.oldal

28 Oszcillátor A korszerű kontrollerek működésének szinkronozása belső, vagy külső oszcillátorral történhet. A 19. ábrán bemutatott áramkörben a rendszer az órajelet (SYSCLK) vagy a tokba 19. ábra épített oszcillátorból, vagy a bemenet illesztő -vel csatolt külső különböző rezgőkörtől kapja. A belső oszcillátor frekvenciája és ki-, bekapcsolása OSC-ICN jelű SFR regiszter bitjeivel vezérelhető. A külső oszcillátor lehet rezonátor, kristály, kondenzátor, vagy RC hálózat, amelyet az XTAL1/XTAL2 pontokhoz kell csatlakoztatni. A külső CMOS óragenerátor alkalmazásakor az XTAL1 láb a bemenet. A reset jel után a belső oszcillátor adja rendszer órajelét. Az RST láb alacsony szintjénél mindkét oszcillátor tiltott. Külső jelgenerátorra vezérléssel lehet átváltani Időzítők-számlálók A digitálisan megoldható feladatok legnagyobb részében alkalmazható az időzítés, vagy események számlálása. A mikrokontrollerek mindegyikében megtalálhatók a programozható időzítő/számláló egységek. Az utóbbi évben fejlesztett mikrokontrollerek többségében van olyan többfunkciós vezérlő tömb, amelyben egy számlálóhoz programmal hozzárendelhető, a következőkben ismertetett üzemmódok közül több, egyidejűleg működő funkció. Az ilyen egységet nevezzük Programozható Számláló Tömb -nek (PCA). A következőkben tömören áttekintjük a különböző megoldásokat. 28.oldal

29 Általános felépítés A 20.ábrán tekinthetjük meg a számláló egységek közös elemeit. A számlálás aktuális értékét, az SFR memória egy-egy szavában (CT_L CT_H) tárolja. A számlálandó jelet több forrásból egy multiplexer (MX) választja ki. Programból vezérelhető a számlálás engedélyezése és a jelforrás. A vázolt felépítés (az üzemmód) esetenként ugyancsak programból változtatható. A számláló vezérlése és státuszai (engedélyezés, túlcsordulás (Cy), megszakítás kérés, jeforrás választás stb.) a megfelelő vezérlő-, és státusz regisztereken keresztül programozhatók. 20. ábra A 8051 mikrokontroller család minden tagjában egyforma a T0 és a T1 jelű programozható időzítőí6számláló. A T2 és további számozású egységek típusonként eltérőek. Rendszerint ezekhez kapcsolódnak kiegészítő regiszterek és különböző logikai egységek, pl. komparátorok. Beírás-ismétlés (Download) A leggyakoribb felhasználás egyike a frekvenciaosztás. A bináris számlálás csak a 2 egész számú hatványának megfelelő értékkel oszthat. A modulus változtatásának egyik megoldása, amikor a kezdő értéket programozással változtatjuk, és a számláló túlcsordulásakor erről az értékről kezdődik újra a számlálás. Amennyiben állandó frekvenciájú jel alkalmazásával állíthatunk elő különböző frekvenciájú jelgenerátort. A 21. ábra szerinti felépítésben az MT_L és MT_H regiszterekbe írjuk be a kívánt kezdő számot, amely a túlcsorduláskor - Cy =1 nél átíródik a számláló regiszterbe. 29.oldal

30 Jelforrás kiválasztás Számlálandó jelforrások MX Számláló regiszter(ek) Túlcsordulás Engedélyezés & CT_L CT_H Cy Modulus regiszter(ek) MT_L MT_H Kezdő érték 21. ábra Külső vezérlésű lekérdezés (Capture) A megoldandó feladatok között gyakran kell mérni az események között eltelt időt, vagy egy harmadik esemény bekövetkeztének számát. Frekvencia, kitöltési tényező meghatározása is előfordul a technológiai folyamatok irányításában. A Capture (lekérdezés) funkció alkalmazásával. Jelforrás kiválasztás Számlálandó jelforrások MX Számláló regiszter(ek) Engedélyezés & CT_L CT_H Cy & Túlcsordulás Mintavételező jelek MX CP_L CP_H Jel kiválasztás Mintavételező (capture) regiszter(ek) 22. ábra oldható meg a feladat. A 22. ábra szemlélteti az áramkör egy lehetséges változatát. Az alapszámláló (CT_L, CT_H) regisztereinek tartalma a tri-state csatolókapukon átírható a mintavételező regiszterekbe (CP_L, CP_H). Programmal választható ki a számlálás, a mintavételező jel forrása, az élvezérlés iránya, valamint engedélyezhető a működés. Összehasonlítás (Compare) Változtatható frekvenciájú, kitöltési tényezőjű és fázisú, valamint PWM (impulzus-szélesség modulált) négyszögjelek állíthatók elő az összehasonlító funkció alkalmazásával. A oldal

31 ábrán, látható blokkvázlaton a számláló regiszterek (CT_L, CT_H) tartalmát egy komparátor hasonlítja össze a CR_L, CR_H regiszterek tartalmával. Jelforrás kiválasztás Számlálandó jelforrások MX Számláló regiszter(ek) Túlcsordulás & CT_L CT_H Cy Összehasonlító (compare) regiszter(ek) CR_L Komparátor CR_H Jf Megszakítás kérő bit 23. ábra Amikor a két számtartalom egyforma, egy jelző flag (Jf) 1-be íródik. A flag lekérdezhető, vagy megszakítást generálhat. A compare regiszterek tartalma programból írható. Az egyezőség jelzésekor programból változtathatók a kimenetként használt port bitek 1-be, vagy 0-ba. A jelsorozatok előállításához az aktuális megszakítás rutinban kell beírni a compare regiszterekbe a következő jelváltáshoz szükséges értéket. Gyártanak olyan kontrollereket is, amelyeknél az összehasonlító funkció közvetlen vezérli a hozzá rendelt port biteket. Ilyen a PCB80C552 típusú mikrovezérlő. (A mérési utasításokban részletesen olvasható a működés és használata.) Számlálók alkalmazásai Az alfejezetben a számlálók leggyakoribb alkalmazását foglaljuk össze. Beépített ellenőrző áramkör a Watch dog A kontrollerrel vezérelt irányítások zavartalan működését biztosítani kell a külső-, illetve belső zajok hatásának jelzésével, vagy kiküszöbölésével. A zaj hatására létrejött programtévesztés, vagy zárt programhurok megszüntetésének egyik megoldása az un. Watch-dog számláló alkalmazása. Ilyen beépített egység már a legtöbb mikrovezérlőben van. A 24. ábrán a 80C552 típusú mikrokontroller Watch dog áramkör blokkvázlata látható. Az rendszer órajelet (f oszc ) a nagy kapacitású időzítő (az ábrán az előosztó + timer) számlálja. Ha a számláló túlcsordul, akkor a csatlakozó tranzisztor a kontrollert reset-eli. Ez a program újbóli indulását vezérli. A program inicializáló részében program döntheti el, hogy hibából történt-e az új indítás, vagy nem. Hiba esetén jelzést lehet generálni. 31.oldal

32 24. ábra Az irányító program, amely mindig ciklikus normál működésekor egy programponthoz adott időtartamon belül mindig visszatér. Ezen a helyen mindig újra kell írni az időzítő regisztereket, és ezzel elkerülhető a túlcsordulás, az automatikus reset. A működést külső lábról lehet engedélyezni. A regiszterek újratöltését a PCON SFR regiszter vezérli. Impulzus szélesség moduláció (PWM) A PWM áramkör tulajdonképpen Digitál / Analóg átalakító. A 16 bites változat elvi felépítését szemlélteti a 25. ábra. Az ábra szerinti CT_L CT_H jelű regiszterpár az engedélyezés ideje alatt binárisan számlálja a Cs impulzussorozatot. Minden túlcsorduláskor előkészíti a belső órajel-lel billentett RS tároló törlését. A PWM_L PWM_H modulációs regiszterpárba, a programból írt m modulációs értéket a 16 bites komparátor összehasonlítja a számláló aktu-ális tartalmával, és amikor a két érték megegyezik, akkor az RS tárolót belső órajel 1 be billen. A kimeneti Port-biten 16 2 T = periódusidejű négyszögjel-sorozat jelenik meg. A jelsorozat kitöltési f Cs m tényezője: k = 100 % 16 2 lesz, ahol a moduláció érték 16 0 m 2 közötti. Cs Számlálandó jel En engedélyezés & számláló regiszterpár CT_L CT_H 16 bites komparátor túlcsordulás R Cp S egyezés T Port bit A modulációt tároló regiszterek PWM_L PWM_H m modulációs érték 25. ábra 32.oldal

33 Programozható frekvenciaosztó, időzítő A Download üzemmód (20. ábra) alkalmazásával hozható létre a programozható frekvenciaosztás, vagy az időzítés. Mindkét alkalmazási típusnál a fő szempont, hogy hardver sebességgel működjön a funkció döntő része, minimális legyen a szükséges szoftver-idő. Az alkalmazások többségénél a megszakítás (interrupt) alkalmazása is csökkenti a szoftverigényt. Programból csupán a modulus és a számlálandó jelforrás beállítását, esetenként az indítást, valamint a megszakítási rutint kell végrehajtani. A számlálást, valamint az újra-írást a hardver végzi. A 26. ábrán 8 bites programozható modulusú számláló-időzítő logikai vázlata látható. fq Cs In indítás Mx V & számláló regiszter CT_L Cy megszakítás modulus tároló regiszter CT_H 26. ábra Az üzemmód kiválasztása és az alapadatok, a modulus (m) beírása, a megszakítás engedélyezése és a jelforrás kiválasztása a V jellel az alkalmazói program inicializáló részében történhet. A számlálás indítását-leállítását az In jel végzi, amely a futó program közben is változtatható. Az időzítés befejezése utáni szükséges műveletek a megszakítás rutinban kell megadni. Programozott késleltetésnek, vagy beállítható frekvenciájú jelgenerátornak nevezzük, ha az állandó értékű belső órajelet (fq) választjuk ki. A Cs külső jelforrás jelének kiválasztásakor eseményszámlálásról (frekvenciaosztásról) beszélünk. A leírtak szerint működnek a 8051-es mikrokontroller család T0, T1 számlálók a 2. üzemmódban Analóg perifériák A környezet jeleinek többségét mérő eszközök analóg jeleket szolgáltatnak. Ezek nagy hányada feszültség, vagy áram. Az irányítás, e jeleket használja a működés, vagy a beavatkozás hatásának ellenőrzésére. Az ipari szabályozások jelentős hányadánál is az ellenőrző jel analóg. m 33.oldal

34 A korábbiakban egyedi eszközök, majd integrált áramkörök szolgáltatták a mért analóg jelekkel arányos digitális információt. Egyre több mikrokontrollerbe integrálnak különböző sebességű, felbontású Analóg - Digitális ( A/D) illetve Digitális - Analóg ( D/A ) átalakítókat, illetve analóg komparátorokat. A fejezetben röviden áttekintjük a megoldások néhány változatát. Analóg-Digitál (A/D) átalakítók A mikrokontrollerekbe többcsatornás, nagyságrendi közelítés (successive-approximation) elven működő A/D átalakítókat integrálnak. A 27. ábrán egy korszerű 12 bites - A/D átalakító felépítését mutatjuk be. A 8 külső analóg jel (AIN0 AIN7), valamint a chip hőmérsékletét mérő érzékelő (TEMP SENZOR) jele kapcsolódik a multiplexerre (ANMUX). Az üzemmód, és a csatornaválasztó jelek megfelelő kombinációja vagy egy, vagy a külső jelek közül egy összetartozó pár-t választ ki. A kiválasztott jel(ek) a programozható erősítő (PGA) bemeneteire jutnak. Az áramkör ezzel a kialakítással egyetlen analóg érték, vagy két jel értékeinek különbségét digitalizálja, 27. ábra Az A/D átalakítás az alábbi módokon indítható. 1. Szoftverből a vezérlő regiszter egy bitjének (AD0BUSY) 1-be írásával, 2. Folytonos mérési sorozat vezérelhető a Timer2, vagy a Timer3 belső időzítő/számláló túlcsordulásával. 3. A CNVSTR lábra adott külső jellel. 34.oldal

35 Az átalakítás végét az AD0BUSY=0 értéke jelzi. E bit értékének figyelése történhet lekérdezéssel (polling), megszakítás elfogadásának engedélyezésével. A konverzió befejezése után olvashatók ki a digitális eredmény felső-, és alsó bájtjai. A legújabb fejlesztésű A/D átalakítóknál lehetőség van üzemmód beállítással az eredmény jobbra, vagy balra igazítására is. Van olyan megoldás is, ahol az értéktartományon belül un. ablak jelölhető ki, amelyen belül, vagy csak azon kívül történik megszakításkérés. Ez a megoldás lehetőséget nyújt egy adott értéktartományba eső jel figyelésére, feldolgozására. Digitál-Analóg átalakítók Az automatizálási feladatok között egyre gyakoribb feladat a különböző időfüggvény szerint változó analóg jelek előállítása. Ilyen feladat, pl. a precíziós mozgásvezérlés, vagy jelkompenzálás stb. A 28. ábrán szemléltetett, nagy sebességű Digitál-Analóg (DAC) jelátalakítóval viszonylag egyszerűen hozhatunk létre különböző lefolyású analóg feszültséget. 28. ábra A jelelőállítás alapja, hogy egy tömbbe foglaljuk, a felbontásnak megfelelő számú digitális értéket, amelyek az előállítani kívánt analóg jel - egyes időpontokhoz tartozó értékei. Az adattömbből, az egymás utáni értékeket átírjuk a D/A átalakító adatregisztereibe (DACH, DACL). Az írást az LSB bájttal kell kezdeni. A beírt értéket az ütemező jel írja át az átmeneti tárba (Latch). E regiszterek tartalmát alakítja analóg jellé a DAC áramkör, amelynek kimenetéhez egy admittancia-illesztő követő erősítő csatlakozik. 35.oldal

36 Az előállított jel analóg értékét a digitális jel, míg az időbeli változást az ütemező jel frekvenciája határozza meg. Az ábra szerinti áramkörben négy különböző ütemező jel alkalmazható. Három időzítő (Timer 1, 2, 3) valamelyikének túlcsordulása, vagy az MSB bájt beírása a DACH jelű adatregiszterbe. Az időzítőkkel valós idejű jelátalakítás, míg a beírással szoftver-vezérelt jelváltozást valósítunk meg. Az ismertetett DAC áramkör 8, vagy 12 bites digitális információból állít elő az AV+ - AGND feszültségtartományba eső analóg értéket. A működés tiltásakor a kimenet nagy impedanciájú lesz. Komparátorok Az irányítástechnikában sokszor alkalmazott két-, vagy háromállásos szabályozásoknál a hibajel adott értékénél kell a beavatkozó elemet ki-, vagy bekapcsolni. Az átkapcsolás hiszterézis -es kell, legyen. A 29. ábrán szemléltetett komparátor alkalmas a feladat ellátására. Az áramkör bemeneteinek (IN+, IN- ) feszültsége határozza meg a kimenet állapotát. A két D tároló biztosítja a működés szinkronját. 29. ábra Programozással állítható be kívánt hiszterézis. A 30. ábrán látható a kimeneti jelalak. 36.oldal

37 30. ábra 37.oldal

38 3.5. Soros kommunikáció A soros információcsere a telefonnal kezdődik, amelynél két vezetéken keresztül a hanggal arányos analóg feszültségátvitel történik két pont között. A telefontechnika fejlődésének eredménye, hogy a 20. század közepén már kódolt (digitális) szöveg átvitelt is megvalósít a TELEX. Ekkor születik meg a V24 jelű szabvány, amelynek része a még ma is használt RS232 szabvány szerint megvalósított soros vonali kommunikáció. Az integrálási technológia fejlődésének eredménye, hogy egyetlen chip -ben, egy mikrokontrollerben megvalósítják az önálló soros kommunikációs hardvert is (I8051/31 család). Ekkor még csak az RS232 szabványnak megfelelő a kialakítás UART (Unit Asyinchron Recevie Transmit). A fejlesztések eredménye, hogy további kommunikációs protokollok szerint működő soros vonali illesztőket alakítanak ki. Ilyenek az I 2 C (System Management Bus SMB), vagy az SPI (Serial Peripheral Interface) busz. Ma már több olyan mikrokontrollert is gyártanak, amelyekben a felsorolt kommunikációs illesztők közül többet, vagy mindegyiket kialakították. A felhasználó dönti el, hogy a fejlesztett rendszerében mely kommunikációkat használja. A továbbiakban a megemlített három változat ismertetésére kerül sor. UART (Unit Asyinchron Recevie Transmit) A klasszikus RS232 szabványnak megfelelő működésű UART portokkal két adat-vezetéken keresztül Tx (Transmit adó), Rx (Recevie vevő) full-duplex (teljes kétirányú) kommunikációt valósítható meg. Megjegyzés: természetesen egy közös null-vezetőt is kell használni. Az UART - soros vonali illesztő blokkvázlata látható a 31. ábrán. Az illesztő áramkör két, működésében egymástól független egységből, az adó-, és a vevő áramkörökből áll. (A működést, ütemező jelet szolgáltató Baud-Rate generátor nem része az UART -nak.) Az SCON sfr regiszterben vannak a soros illesztő egység üzemmód beállító-, vezérlő-, és státusz-bitjei. 38.oldal

39 Adó Vev 31. ábra Először az adás működését elemezzük. Az indítás elött a Tx kimenet H szinten van. Az adást az SBUF jelű léptetőregiszterbe történő írás kezdeményezi. A 8 bites információ mellett a T Q jelű tárolóba 1 a Stop-bit íródik. Az adatbeírás egyúttal a Tx Control (adást-vezérlő) Start bemenetén keresztül elindítja az alábbi lépések vezérlését. a Tx Clock bemenetre érkező első ütemező impulzus (órajel) ideje alatt a Send =1, a Data=0, ezért a Tx kimenet L szintű lesz. Ez az un. Start-bit, amely jelzi egy bájt adásának kezdetét. A következő órajeltől kezdve a Data kimenet is 1-be vált, és ezzel engedélyezi a beírt adat LSB bitjének kilépését a Tx vonalra. A következő 8 ütemben az SBUF tartalmát a kimenetre lép, és a T Q tárolóba 0-t ír és ez által a regiszter utolsó (9.) bitje lesz csak 1. A 9. léptetés után kiürül a regiszter, és a Zero Detector egység leállítja a vezérlést. Ekkor vált 1-be a TI jelű (Transmit Interrupt) bit. A bit értéke megszakítást is kezdeményezhet, ha az engedélyezett, vagy lekérdezhető (polling). 39.oldal

40 Az adatközlés tehát bájtonként automatikusan hajtódik végre. Az adatátvitelt kezelő szoftver feladata csak a következő bájt írása, amikor a TI bit=1. Az alapműködést szemlélteti a 32. ábra Az RS232 szabványú kommunikáció időzítése az M1 üzemmódban 32. ábra Másodszor elemezzük a vevő egység működését Az Rx vonalon érkező adatsorozat a bemeneti információ. A vevő egység Start bemenetére az éldetektor ad indító jelet akkor, ha a vonalon 1-0 átmenet (adat kezdet) van. Ettől kezdve, az órajel (Rx Clock) a jelsorozatot - a kerethiba jelző (Frame Error Detector) áramkörön keresztül a 9 bites bemeneti regiszterbe (Input Shift Regiszter) lépteti. A kilencedik léptetés után - ha nincs hiba a vett adat átíródik az SBUF vevő regiszterbe, és RI (Recevie Interrupt) bit 1 értékre vált. Ekkor lehet kiolvasni és feldolgozni a beérkezett információt. Az un. pont pont kapcsolatot, - vagyis amelynél csak két állomás kommunikál - szemlélteti a 33. ábra. 33. ábra Az előzőekben említett hibafigyelő áramkör hiba bitekkel ad jelzést a hibás működésről, vagy vezérlésről. A teljesség igénye nélkül kerethiba lehet például, ha a jelkezdettől ½ bit 40.oldal

41 idő múlva a jel újból 1 szintű (zaj indította vételt), vagy ha a 9. bit után sem érkezik Stop-bit ( pl. vonalhiba is okozhatja) stb. Az UART üzemmódjai: A mikrokontrollerek UART egységei rendszerint több üzemmódban is működhetnek. a. A 8 bites, az előzőekben leírt adás-vétel a leggyakrabban használt üzemmód. b. Több- (multi-) processzoros kommunikáció a 9 bites adatátvitellel alakítható ki. A 34. ábrán szemléltetett megoldással több állomás között is kialakítható kommunikáció. A kommunikáció 9 bites szavakkal történik. A 9. bit határozza meg, hogy az előtte lévő nyolc bit cím (1), vagy adat (0). A résztvevők közül mindig egyik a master, a többiek a slave -k. 34. ábra Az adatátvitelt mindig a master áramkör kezdeményezi. A slave egységek is fogadják az első adatot. A kezdő bájt annak az egységnek (slave -nek) a címe, amelyhez információt kíván küldeni. Amelyik egységnél MATCH Detect azonosítja a címet, az engedélyezi a további kommunikációban való részvételt. A többi áramkör lekapcsolódik a buszról. A további bájtok adatok, amelyeknél a 9. bit 0. Amennyiben válasz is kell, akkor megcserélődnek a szerepek és a válaszadó lesz a master. c. A szinkron üzemmód A 35. ábrán látható, hogy az egyik vonalon (Rx) érkezik az adat és másikon (Tx) az ütemező órajel. Az adás-vétel időzítései az üzemmódban a. 41.oldal

42 b. 35. ábra További változatot jelent, hogy lehet az adás-vétel fix-, illetve változtatható ütemezésű. Az órajelet rendszerint a kontroller valamelyik időzítő/számlálója szolgáltatja. I 2 C (System Management Bus SMB) busz Az I 2 C, Inter IC azaz IC-k közötti busz. Az I 2 C busz nagybonyolultságú integrált áramkörök közötti soros információcserét biztosító megvalósító sínrendszer. Az átviteli half-duplex módon történik, sebessége kb kb/s értékig növelhető. A kommunikáció kétirányú adatvonalon (SDA = Serial Data) keresztül történik, és egy külön órajel (SCL = Serial Clock) szinkronizálja az adatvezetéken az adatokat. Mindkét buszvonalhoz csatlakozó hardver elemek nyitott (open) kollektoros kialakításúak. A busz elvi felépítése a 36. ábrán látható. 36. ábra 42.oldal

43 Alaphelyzetben nincs adatátvitel, a vonalak magas állapotban vannak (minden csatlakozó elem kimeneti tranzisztora zárt). Ha bármelyik tranzisztor kinyit, akkor az a vezetéket alacsony szintre kapcsolja. Ezt a megoldást az elektronikában huzalozott vagy kapcsolatnak hívják. A buszon az információáramlás iránya alapján megkülönböztetünk Adó ill. Vevő egységeket. Az átvitel vezérlését a Master eszköz végzi, irányítva a Slave egységeket A funkciók: TRX = Transmitter (adó) egység, küldi az adatot a buszra. RCV = Recivier (vevő) egység, adatot fogad a buszról. A szerepek: MST = Master (mester) egység, kezdeményezi az átvitelt, generálja az órajelet, és leállítja az átvitelt. SLV = Slave (szolga): A mester által megcímzett egység. A mikrokontroller I 2 C egysége mindegyik szerepre és funkcióra képes. Természetesen, ha ez az egység vezérli a perifériákat (és a gyakorlatban ez a leggyakoribb eset), akkor szerepe: mester és a perifériák a szolgák. A busz multi-master kialakítású. Ez azt jelenti, hogy buszra kapcsolódó eszközök közül nem csak egy, hanem több is átveheti az átvitel vezérlését. Ezzel kapcsolatos fontos tulajdonság az arbitration, vagy döntés. Ez egy eljárás, ami biztosítja, ha egynél több mester akarja a buszt vezérelni, akkor ezt csak egyetlen egy tudja megtenni, így adatvesztés nem léphet fel. A 37. ábrán látható az áramkör elvi felépítése. Az Interface működését az 5 SFR regiszteren az SMBCN vezérlő, SMBCR órajel beállító, SMBADR cím, SMBDAT adat, SMBSTA állapot (státusz) keresztül működtethető Az információ átvitel bájtos szervezésű. Minden bájt befejezése megszakítást kezdeményezhet. 43.oldal

44 37. ábra Az adatközlés felépítését a 38. ábra alapján követhetjük. Az átviteli szekvencia a következő: Alaphelyzet a busz két vonala magas szintű. Az adatátvitelt a master az un. START feltétellel kezdi azzal, hogy az SCL vonalon kiadott impulzus magas szintjénél az SDA vonalon egy H-L átmenet hoz létre. Ezután válnak aktívvá a vonalak. 38. ábra A következő lépésben a Slave címe kerül az SDA vonalra. A cím 7 bites, és a nyolcadik bit határozza meg az adatátvitel irányát. Írás (W) 0 szint, olvasás (R) 1 szint. A következő, 9. órajel alatt az adó egység elengedi az SDA vonalat, és - a címzett vevő azt 0 szintre húzza, ami az adat elfogadását acknowledge (ACK) jelzi. 44.oldal

45 A következőkben történik az adatok küldése, amelyek száma nincs korlátozva. Minden bájt vétele után következik az ACK jelzés. Az adatátvitel befejezését a mester az un. STOP feltétellel zárja le azzal, hogy az SCL magas állapotában az SDA vonalon egy L-H átmenetet állít elő. Ezt követően válnak a vonalak inaktívvá. Ha a vevő nem képes adatot venni, akkor az ACK bit küldése helyett az SCL vonalat húzza le 0 szintre. Ezt nevezzük várakozó állapotnak. A "minden bájt nyugtázása" szabály alól két kivétel van: Amikor a master a vevő (MST/RCV). Ilyenkor az adónak valahogy jelezni kell az a- dássorozat végét.. Az ACK jelhez kapcsolódó órajelet a mester természetesen generálja, de az SDA vonalat nem húzza le L szintre. Ez a negatív nyugtázás (NACK). A másik kivétel: a szolga akkor nem küld ACK jelet, ha nem képes újabb adatbájtokat elfogadni. Ez akkor lép fel, ha olyan átvitelt kezdeményezünk, amit nem képes fogadni. A buszra kapcsolódó eszközök címei két csoportba sorolhatók: Az egyikben a cím programozható, ezek általában a mikrokontrollerek. A másik csoport a különféle funkciókat megvalósító periféria áramkörök. Ezeknél az eszközöknél a cím két részből áll: a 4 bites típuscímből, és a bites hardver címből. A típus cím az azonos funkciójú tokoknál mindig megegyezik. A hardver címet az adott tok megfelelő lábaira kötött logikai szintekkel állítható be. Amennyiben a master több szolgával végez egymást követően - adatcserét, akkor a minden átvitelt lezáró STOP, majd az újabb START állapot sokat lassít az átvitelen. Az átvitel azzal gyorsítható, hogy a STOP helyett ismételt START állapot, majd az újabb slave cím következik. Ezt nevezzük ismételt START állapotnak. Az információátvitel mindig két résztvevő az aktuális master és slave egység között történik. Ennek megfelelően négy változat lehetséges. A 39. a,b,c,d ábrákon szemléltetjük a változatok időbeli lefolyását. Az ábrákon használt jelölések az alábbi jelentésűek: 45.oldal

46 a. master adás b. master vétel c. slave adás d. slave vétel 39. ábra 46.oldal

47 SPI (Serial Peripheral Interface) busz Az SPI soros vonali kommunikációs egység négy vezetéken keresztül valósít meg full-duplex adatátvitelt. A működési mód master-slave jellegű, ahol a kapcsolódó egységek bármelyike lehet a master áramkör. A működés egyszerű, amely a 40. ábrán bemutatott, pont-pont kapcsolaton követhető. 40. ábra A négy csatlakozás funkciója: A MOSI (Master Out, Slave In) pontokat összekötő vezetéken küldi a master az adatokat a slave nek. A MISO (Master In, Slave Out) pontokat összekötő vezetéken küldi a slave az adatokat a master nek. Az NSS (Slave Select) csatlakozó pontra kapcsol H szint, választja ki a slave -t. A bemutatott ábrán a master mikrovezérlő egyik Port-bitje (P x.y ) adja a kiválasztást. Az SCK (Serial Clock) vezetékre a master adja a kommunikáció sebességét meghatározó órajelet. Maximális értéke a rendszer-órajel (SYSCLK) tizede. Az SPI kommunikációs áramkör elvi blokk-vázlatát szemlélteti 41. ábra. A leírtak szerinti működés üzemmódját az SPICFG, vezérlését a SPICN, az órajelet a SPICKR, és az adatot SPIDAT SFR regiszterek felhasználásával programozható. A működtető szoftvernél a megszakítás (SPI IRQ) is felhasználható! 47.oldal

48 41. ábra Az SPI áramkörökkel is megvalósítható a több állomásos kommunikációs hálózat. Az állomások közül az éppen kijelölt master szolgáltatja az ütemező jelet. A slave kiválasztás a mikrovezérlő valamelyik port -ján keresztül, esetleg külső áramkörrel kiegészítve történhet. Az elvi felépítést mutatja a 42. ábra. 42. ábra 48.oldal

49 Az SPCKR regiszter bitjeivel különböző fázishelyzetű szinkronozás valósítható meg. A 43. ábrán láthatók a variációk. 43. ábra Az ismertetett kommunikációs interface -k elvi működését tárgyaltuk. Konkrét alkalmazásuk az adott mikrokontroller katalógusi adatai alapján történhet. 49.oldal

50 4. A programozható logikai vezérlők (PLC) alkalmazása A hallgatók a korábbi tanulmányaik során az irányítástechnikában - megismerkedtek a PLC -k alkalmazásának alapjaival. Laboratóriumban gyakorlatot szereztek a Siemens S7 típusú PLC programozásában. A fejezetben röviden áttekintjük a ma már nélkülözhetetlen irányítási eszközök, a PLC -k fejlődését. Részletesebben foglalkozunk a hazánkban talán legjobban elterjedt három gyártó az OMRON, a SCNEIDER és a SIEMENS egy-egy készülékének alapvető hardver jellemzőivel. Tárgyaljuk ezen eszközök programozását, alkalmazási lehetőségeit. Megismertetjük a fejlesztői környezetek használatát Történeti áttekintés Nehéz lenne megmondani, hogy mit tekinthetünk az automatizálási rendszerek kezdetének, mi is volt az első lépcső. Mindenesetre az ipari folyamatirányítást és a PLC -k fejlődését több fontos dolog is befolyásolta, mint például a mikroprocesszorok a félvezetők, és főként a termelés hatékonyságának fokozása. Az ipari vezérlőberendezések teljesen átalakították, a termelési folyamatot, csökkentve az élő munkaerő-igényt, növelték a termelékenységet, és állandó minőséget tudtak produkálni. Az első ipari kivitelű vezérlőberendezések a 1960-as években jelentek meg, a GM amerikai vállalat fejlesztésében. Akkoriban még Programabble Controller -nek nevezték. A General Motors megbízásából a Bedford Associates hozott létre, egy új vállalatot olyan céllal, hogy kiszolgálja, fejlessze és eladja az új terméket a Modicon - t amit, a Modular Digital Control után neveztek el így. Majd 1969-ben eladták az első működő PLC t a 084-es típusszámút, amely 1 Kb memóriával és 128 I/O -val rendelkezett. Az első PLC tervezésében jelentős szerepe volt Richard E. Morley (44. ábra) akit máig, a PLC szülőatyjának tartanak. Az első generációjú vezérlők, programozása még nem volt egységes, nem voltak univerzális programnyelvek. Számos PLC-t, hasonlóan a kor követelményeinek megfelelő számítógépéhez, lyukkártyás módszerrel programoztak. A lyukkártyás módszeren kívül nagyon fontos volt Assembly-nyelvű, valamint a gépi kódú programozás. A számítógépek és a mikroprocesszorok fejlődésével párhuzamosan fejlődtek a PLC -k is. 44. ábra 50.oldal

51 Az 1970-es években jelent meg, az áramút-terv -ből kialakított un. létra-diagram nevű programozási nyelv, amelyet napjainkig is több-kevesebb módosítás után - használunk. A Kandó Kálmán Villamosipari Műszaki Főiskola Hajtásszabályozás Tanszékén 1980-ban kezdődött a PLC technika oktatása. Az első - MODICON 484 típusú (45. ábra) PLC -t OMFB támogatással vette meg a Tanszék. Ezt a készüléket tanévig használtuk az automatika szakos ágazati képzésének laboratóriumi gyakorlataiban, valamint a szak-üzemmérnöki, és egyéb tanfolyami képzésekben. 45. ábra Modicon 484 A készüléket programozni - egy I 8080 típusú mikroprocesszorral megépített - képernyős programozó készülékkel grafikusan lehetett. Programozási nyelve a későbbiekben LL98 elnevezésű programnyelv első változata volt. Ez tulajdonképpen a létra-diagram és a funkció-blokk együttes alkalmazása. A fejlesztői programot CMOS RAM tárolta, és innen is futtatta a PROM-ba égetett monitor program. On-line programozás történt. A következőkben csak ( ábrák) felsorolással mutatjuk be az elmúlt 2 évtizedben nálunk használt PLC -ket. A bemutatott készülékek programozása már PC-n futó fejlesztői környezetben történt. 51.oldal

52 46. ábra Klöckner-Möller PS3 47. ábra Omron CQM 48. ábra Modicon Micro oldal

53 49. ábra Siemens S5 A következő típus (50. ábra) már az 1993-ban készített IEC szabványajánlás mindegyik PLC nyelvén programozható a CONCEPT fejlesztői környezetben. Ugyanakkor Ethernet csatlakoztatással hálózatban is használható. 50. ábra Modicon Momentum A sorra következő részekben bemutatjuk a hazánkban legelterjedtebb PLC gyártó, forgalmazó az OMRON, a SCHNEIDER ELECTRIC és a SIEMENS egy-egy PLC -jét. A laboratóriumi gyakorlatokon ezekkel a készülékekkel találkoznak, és irányítási feladatokat oldanak meg Az alkalmazott három PLC típus összehasonlítása Az ismertetésre kerülő három készülék közül a CJ1M, és az M340 típusok teljesen moduláris, míg az S7-313C típus kompakt, amely bővíthető további modulokkal. A mérési gyakorlatokon e három típus programozását ismerik meg a hallgatók. A következőkben tömören összefoglaljuk a három PLC legfontosabb tulajdonságát. 53.oldal

54 Hardver kialakítás A CJ1M típusú moduláris PLC az OMRON CJ1 termékcsalád legkisebb tagja (51. ábra). Az utasításkészlet, a kommunikációs parancsok és a memóriaszervezés szempontjából kompatibilis a CJ1G/H és a CS1 sorozattal. CPU Analóg I/O Diszkrét bemenetek Tápegység CJ1M (OMRON) Diszkrét kimenetek 51. ábra A Schneider Electric legutóbbi fejlesztéseinek egyike a Modicon 340 elnevezésű moduláris PLC család (52. ábra). A PLC normál és nagy teljesítményű processzorai az egy hátlapos programozható logikai vezérlőt irányítják. A konfigurációban legfeljebb 11 kártyahely lehet: CPU Analóg I/O Diszkrét bemenetek Tápegység Diszkrét kimenetek M340 (SCHNEIDER E.) 52. ábra 54.oldal

55 A Siemens S7 PLC széles választékú család tagja az S7 313C típusú kompakt készülék. Az egység tovább bővíthető Különböző I/O modulokkal (53. ábra). USB illesztő S7 313C kompakt PLC Diszkrét bemenetek Tápegység Diszkrét kimenetek S7-313 (SIEMENS) A tápegység 53. ábra Mindhárom készülékcsaládban önálló tápegység modulok vannak. A 54. ábrán az egyes családokhoz tartozó egységek fényképei láthatók. A tápegységek: 24 Vdc, 48 Vdc vagy Vac bemenő tápfeszültségűek lehetnek. PA205C CPS 2000 PS ábra A CPU Az egyes PLC családok központ egységeinek összehasonlítása sok szempont szerint történhet. Felhasználói szempontból lényeges adatok: működési sebesség, utasítás/ms. memóriakapacitás, 55.oldal

56 maximális bővítő modulok száma, kommunikációs csatornák száma, típusai. A felsoroltak szerint tekintjük a tárgyalt három PLC típus jellemzőit. a. Az Omron PLC választékában a CJ sorozat tagja az itt tárgyalt CJ1M típus (55. ábra). Működési sebesség: utasítás/ms Memóriakapacitás: Programmemória: 2,048. 4,096 MB Adatmemória: KB Maximális bővítés: Diszkrét I/O Analóg I/O ábra CJ1M processzora Soros kommunikáció: b. Az M340 PLC négyféle processzorral (BMX P , 2010, 2020, 2030) állítható össze (56. ábra). A felsoroltak közül az 1000-es a legkisebb és a 2030-as a legnagyobb teljesítményű.. (Az adatok az 1000 típusra vonatkoznak) Működési sebesség: ~7000 utasítás/ms Memóriakapacitás: Programmemória: 4 MB Adatmemória: 256 KB Maximális bővítés: Diszkrét I/O 512 Analóg I/O ábra P CPU Soros kommunikáció: MODBUSZ Ethernet TCP/IP USB ---- Can Open 56.oldal

57 c. Az S7 300 PLC család egyik közepes teljesítményű kompakt egysége a 313C készülék. Az 57. ábrán látható kompakt készüléknek a processzor mellett diszkrét és analóg illesztő, valamint számláló egységei is vannak. Az alapkonfiguráció: 24 diszkrét (digitális) bemenet 16 diszkrét (digitális) kimenet, valamint 4 analóg be-, és 2 analóg kimenet, amely áram / feszültség fogadására, és még egy bemenet hőmérséklet érzékelő jelének fogadására. Az egységhez további modulok csatlakoztathatók. Működési sebesség: ~ utasítás/ms Memóriakapacitás: Programmemória: 64 KB Adatmemória: 256 KB Maximális bővítés: Diszkrét I/O 1024 Analóg I/O 256 Soros kommunikáció: Profibusz 57. ábra S7-313C kompakt készülék Diszkrét I/O illesztők A különböző cégek által gyártott diszkrét be-, és kimeneti illesztő egységeinek elvi áramköri kialakítása között kevés az eltérés. Tipikus feszültség 24 Vdc. Mind a bemeneti, mind a kimeneti oldalon a pozitív szintet alkalmazzák IGEN szintnek. A bemeneti (58.a.ábra) és a kimeneti (b. ábra) illesztő egységek jellegzetes áramköri kialakítás kapcsolási vázlatai: 57.oldal

58 a. b. 58. ábra Mindegyik gyártó különböző csatlakozási számú illesztőket készít. A 8, 16 és 32 a tipikus be-, kimeneti csatornaszám. Ugyancsak megtalálhatók az olyan egységek, amelyekben mind be-, mind kimeneti illesztők is vannak. Az utóbbiak elsősorban a kevés ki-bemeneti számú feladatok ellátásához előnyösek. A 59. ábrán mindhárom cég egy - egy diszktét illesztőegységét mutatjuk be a. b. c. Omron Schneider Electric Siemens 59. ábra Analóg illesztők Az ipari irányítások többségében kell szabályozási és mérési (adatgyűjtési) feladatokat végezni. A fizikai, technikai folyamatok jeleiből főleg analóg villamos jeleket állítanak elő a különböző jeladók, távadók. Az PLC vel történő automatizálásnál ezért elengedhetetlenek a különböző analóg be-, és kimeneti illesztőegységek alkalmazása. A szabványos villamos jelek között leggyakoribb a 4-20 ma -es áram, illetve a 10 V V tartományba eső 58.oldal

59 feszültség. A PLC családok elemválasztékában több változatát is megtaláljuk az analóg illesztőknek. Ezek között is vannak olyan modulok, amelyekben be-, és kimenetek illesztők is vannak. Az említett különböző szabványos jelek fogadására, adására is alkalmas a legtöbb modul. Alkalmazásuknál szoftveresen kell beállítani, hogy az egységnél milyen jeleket alkalmazunk. A 60. ábrán látható modulok ránézésre kevésbé különböznek a diszkrét illesztőegységektől. A kialakításban is egyből látható, hogy melyik gyártó családjába tartozik. Omron Schneider Electric Siemens A memória 60. ábra A jegyzetben részletesebben leírt PLC -ben a használt memóriaterületek egyik része a készülékben lévő (flash)ram, másik része a flash kártya. Az M340 típusú készülék memóriaterületének kiosztása látható az 61.ábrán. A többi típusnál is hasonló az elvi kialakítás, ezért itt nem mutatjuk meg. 61. ábra 59.oldal

60 III. R É S Z Irányítástechnikai programok tervezése, fejlesztése 60.oldal

61 5. Programfejlesztés A fejezetben foglaljuk össze az irányítási feladatokat végző programok fejlesztésének a korábbi tanulmányokban már tárgyalt -legfontosabb alapismereteit. Külön is hangsúlyozzuk, hogy a tárgyalt fogalmak, eljárások mind az általános célú mikrogépek, mind a célhardver PLC k programfejlesztéseinél alkalmazhatók A programozás célja A mikrogép működését meghatározó programot az un. code-, vagy programmemóriába kell tárolni az alkalmazott mikroprocesszor, vagy mikrokontroller - a továbbiakban processzor - típusától függő gépi kódok sorozatával. A program végrehajtásakor a processzor innen olvassa ki az utasításokat, és paramétereket. A programozás célja tehát. egy olyan kódsorozat létrehozása, amelyet egy mikrogép (mikroprocesszor bázisú számítógép) programmemóriájába töltve, meghatározza a mikrogép feladat szerinti működését A programfejlesztés lépései A programfejlesztés az alábbiakban tömören ismertetett lépésekből áll. a. A feladat egyértelmű leírása alapján az alkalmazható algoritmusok meghatározása. b. A program felépítésének megtervezése. Ezt segíti a folyamatábra megrajzolása. c. A programban használt változók, konstansok, periféria-címek meghatározása. d. A forrásprogram (ok) megírása - valamilyen szövegszerkesztő (editor) segítségével - a választott programozási-nyelv "helyesírási " (szintaktikai), és tartalmi (szemantikai) szabályai szerint. Ez lesz a program forrásnyelvi formája. A számítógépek, mikrogépek alkalmazásának széleskörű elterjedése a különböző programnyelv választékot is bővítette. A programnyelveket gépközeli- (assembly), és a magas szintű nyelvek csoportjába sorolhatjuk. - Gépközeli az a programozás, amelynél minden programlépés programsor - az alkalmazott processzor egy-egy utasítása. Mivel minden processzornak saját utasításkészlete van, ezért a programírás is 61.oldal

62 processzorfüggő. Az ilyen programírást nevezzük assembly vagy más közelítésben utasítás szerkezetű programírásnak. - A magas szintű programozási nyelvek (Pascal, C, a PLC nyelvek stb.) rendszerint a nemzetközileg elfogadott matematikai, logikai műveletek, és különböző általános, a programszerkezetet meghatározó utasítások segítségével írják le a feladatot. Ezért e nyelveken a programozás független attól a géptől, amelyen a programot futatni akarjuk. A magas szintű nyelven történő programírást művelet - központú programozásnak is nevezhetjük. e. A forrásnyelvi programból a különböző fordító programok (assembler, compiller) állítják elő a program tárgykódú (object) alakját, illetve a programlistát, amelyek már a processzor utasításkódjait is tartalmazzák. (A leírtakból következik, hogy a magas szintű nyelveknél is a fordítóprogram már processzortól függő.) f. A tárgykódú programból, vagy programokból (több modul esetében) a szerkesztő (linker) program állítja elő a futtatható programváltozatot. g. Az így előállított programot kell beírni (letölteni) a programmemóriába. A programmemória lehet fix (ROM, EPROM), illetve irható-olvasható (RAM) kialakítású. A beégetés, vagy letöltés történhet teljes kódú (bináris), vagy tömörített (pl. INTEL HEX) alakú állományból. Ennek megfelelően a programozás utolsó lépése a kívánt formátum-konverzió elvégzése A programfejlesztés eszközei A programfejlesztés leglényegesebb eszköze az ember, mivel a feladatot megvalósító program algoritmusait, felépítését, változók, konstansok meghatározását stb. csak alapos tervező, elemző munkával lehet, és kell elvégezni A programfejlesztés tárgyi eszközei ma kizárólag általános célú számítógépek PC-k, és az ezeken futó fejlesztő-programok segítségével történik. Természetesen e programok csak a technikai háttért adják. A teljesség igénye nélkül az alábbi szoftverek elengedhetetlenül szükségesek: a rajzoló programok (folyamatábra rajzolás), a szövegszerkesztők, editorok (forrásnyelvű állomány írásához), az assemblerek, compillerek (a szöveges állomány fordításához), a linkerek (az abszolút tárgykódú állomány szerkesztéséhez), az obj-hex, obj-bin átalakítók (formátum-konverzióhoz), 62.oldal

63 a szimulátorok (a program-szimulációhoz), emulátorok, terminál-monitor programok (a valós idejű teszteléshez) A programfejlesztés módszerei a sokszor az adottságoktól függően különbözőek. A PC-k elterjedésének kezdetén a fejlesztési lépések egyedi végrehajtása, esetleg un. parancs-fájlok (batch) segítségével segítették a hatékonyságot. A számítógépek, a szoftvergyártás rohamos fejlődése hozta, az un. integrált fejlesztői környezetek kialakítását, amelyek a felsorolt lépések mindegyikét automatikusan, vagy kézi vezérléssel hajtják végre. A nagy szoftvergyártó cégek különféle környezeteket (DOS, majd Windows operációs rendszerekben) fejlesztettek. Ezek elsősorban az elterjedt magas szintű nyelvekhez, úgymint a Pascal, C++ stb. készültek. A különböző multitask -os operációs rendszerekben egymás után jelentek meg az automatizált programfejlesztő programcsomagok, pl. DELFI, BILDER stb. A 8031/51 mikrokontroller család programfejlesztéséhez a Keil Electronic cég másfél évtizede készít fejlesztő programokat (a51.exe, c51.exe, l51.exe, lib51.exe, ohs51.exe), illetve integrál fejlesztő környezetet (UV4). A PLC -k programozásához is a gyártó cégek által kifejlesztett integrált fejlesztői környezetek segítik a működtető programok írását, ellenőrzését. Ilyenek fejlesztői programcsomagok a CX-Programmer (Omron), Unity Pro XL (Schneider Electric), Simatic Step7 (Siemens) A modul mérési feladatainak megoldásánál a felsorolt fejlesztői környezetet alkalmazzuk Programszerkezetek A mikroprocesszoros berendezések (mikrogépek, PLC -k) programjainak legkisebb egységei az utasítás-kódok, és paramétereik. A programkódokat a fordítók, compillerek állítják elő. A program forrás-állományt (forrás-fájl) nagyobb egységek, un. program-blokkok csoportjaiból kell felépíteni, amelyek egy adott jellegű művelet végrehajtásához szükségesek. A követezőekben összefoglaljuk az elemi programblokkokat, valamint ezek segítségével kialakítható tipikus programszerkezeteket. A leírtakat folyamatábrával szemléltetjük. A feladatot megvalósító program tervezésénél célszerű folyamatábrát használni. 63.oldal

64 Elemi program-blokkok A program szerkezeti elemei az elemi-blokkok. Műveleti blokk, OP1 és OP2 összeadása ; assembly nyelven. MOV A,OP1 ADDC A,OP2 MOV ERED,A. /* C nyelven */. ered = op1 + op2 ;. egy logikailag összetartozó (matematikai, logikai, stb.) utasításcsoport. Művelet Feltétel nélküli programelágazás ugrás a folytatásra ; assembly nyelven. FOLYT: MOV LJMP MOV ERED,A FOLYT. DPTR,#NGS. A következő utasítás beolvasása a memória távolabbi címéről történik. A c - nyelvben nem használnak direkt ugrást. n. utasítás n+1. utasítás Feltételes programelágazás ha az A=0 ugrás a folytatásra ; assembly nyelven. ADDC A,OP2 JZ MOV FOLYT: MOV /* C nyelven */ FOLYT ERED,A. DPTR,#NGS.. if(acc==0) { ered = ACC }. //folyt. Egy változó (bájtos, bites) aktuális értékétől függ, hogy az új utasítás beolvasása a programmemória következő, vagy távolabbi címről történik. n. művelet nem feltétel igaz? igen n+1. művelet 64.oldal

65 Többirányú programelágazás A alkalmazásokban gyakori feladat, hogy egy változó értékétől függően különböző műveleteket kell végrehajtani. Ilyen esetben, a programban többirányú elágazást, programugrást kell beírni. A V1 aktuális értékétől függő ugrás A = változó A =1.ért? Nem Ige A =2.ért? Nem Ige A =3.ért? 1. műveletre Ige 2. műveletre 3. műveletre Nem A =n.ért? Ige Nem Nincs változás folytatás n. műveletre assembly nyelven MOV A,V1 CJNE JMP A,#E1,FO1 MUV1 FO1: CJNE A,#E2,FO2 JMP MUV2 FO2: CJNE A,#E3,FO3 JMP MUV3. FOn: CJNE A,#En,NV JMP MUVn MUV1:.. ; 1. művelet JMP NV MUV2:.. ; 2. művelet JMP NV MUVn:.. ;n. művelet NV:. ; folytatás 65.oldal

66 C nyelven switch (V1) { case E1 : /*1.művelet*/ ; break; case E2 : /*2.művelet*/; break; case E3 : /*1.művelet*/ ;break;.. case En : /*n.művelet*/, break; }. Összehasonlítás Nagyságkomparálás ; assembly nyelven. CJNE V1,V2,NEM_E JMP EGYEN NEM_E: JC KISEBB NAGY:.. JMP FOLYT KISEBB:.. JMP FOLYT EGYEN:.. FOLYT:.. /* C nyelven */ if (V1 == V2) { egyenlő(); } else if (V1<V2) {kisebb()} else {nagyobb()} Kétbájtos változók relációjának (kisebb, nagyobb, egyenlő) meghatározása többszörös döntéssel végezhető el.. Nem V1 = V2? Nem V1 < V2? Igen Igen Nagyob Kisebb Egyenlő A c nyelvi változatban egy függvénnyel jeleztük az egyes relációknál végrehajtandó műveletet. Jelváltozás meghatározása A vezérlési feladatok között sokszor szükséges csak az adott jel valamelyik irányú változásakor kell elindítani egy folyamatot. Most röviden tárgyaljuk a jelváltás detektálásának néhány változatát. A megoldásoknál fontos alapelv, hogy a lehető legrövidebb időn belül határozzuk meg a váltás tényét és irányát. A feltételből adódik, hogy olyan megoldás nem jöhet számításba amikor a program vár a változásra. 66.oldal

67 Az automatizálásban alkalmazott szoftverek fontos alapelve a ciklikus működés, valamint az, hogy a ciklus elején mintavételezi és tárolja a bemeneti jelek aktuális értékét. A működésből adódik, hogy egy programciklus ideje határozza meg, hogy mekkora az az idő, amelyen belül történő változást már nem lehet egyértelműen értékelni. A 62. ábrán látható idődiagram mutatja egy jel változását, és a program mintavételezéseit. V n n+1 k k+1 t c 62. ábra Két mintavételezés között fut le a program egy ciklusa. A ciklus elején történik a változók aktuális értékének beolvasása és tárolása a belső memóriában. A két egymást követő mintavételezésből lehet megállapítani, hogy az előző ciklusban történt-e jelváltozás. A példa szerint az n. ciklusban pozitív irányba, míg a k. ciklusban negatív irányba változik a V jel. Így a következő ciklus elején (az n+1. ill. a k+1.) észlelhető, hogy volt jelváltozás. Most vizsgáljuk meg, hogyan lehet megállapítani a váltás tényét, és irányát. A pozitív irányú változásnál az n. ciklus elején beolvasott és tárolt érték U t = 0, és az t n+1. ciklusban frissített érték U f = 1. A pozitív váltást jelző bit B = U p t U f A negatív irányú változásnál a k. ciklus elején beolvasott és tárolt érték U t = 1, a k+1. ciklusban frissített érték U f = 0. A negatív váltást jelző bit B = U n t U f Összefoglalva deklarálni kell a kívánt váltást jelző bitet és ennek értékét a bemenetek frissítésekor kell meghatározni a fenti logikai összefüggések alapján. A jelzőbitek egy ciklusban használhatók jelváltás jelzésére. Minden további ciklusban értékük 0. Azokban az esetekben, amikor egy bájt több bitjének változását is fel kívánjuk használni a programban, akkor az alábbiak szerint célszerű eljárni. 1. Meghatározzuk, hogy a V t tárolt és a V f frissített bájtok különböznek-e. A K = V t V f művelet eredményében azok a bitek 1 értékűek, amelyek a két bájban eltérőek, vagyis az adott bemenetekre kapcsol jelek valamelyik irányba változtak. Példaként nézzük a következőt: 67.oldal

68 V t V f K Jelváltás meghatározása 2. Az eredményből szét kell választani a pozitív, illetve a negatív irányú változást jelző biteket és azokat külön bájtban tárolni ami a következő műveletekkel végezhető el. K p = K V f illetve Kn = K Vt vagyis a pozitív változást az új érték, míg a negatívat a tárolt a tárolt érték maszkolja. Az előző példát folytatva K V f K p 1 0 pozitív K V t K n negatív jelváltás (él) meghatározása Végezetül írjuk meg az egy bájt bitjeinek változását meghatározó frissítő rutin forrását. (A példáknál a deklarációkat nem írjuk fel.) ; xxx a bemenetek frissítését és a változást jelző rutin xxx FRISS: MOV DPTR, # BEP MOVX ; értékek beolvasása a bemeneti perifériáról PUSH ACC XRL A, BEM ; a változott bitek meghatározása MOV B, A ANL A, BEM ; a negatív változás maszkolása, MOV BEMN, A ; tárolása POP ACC ANL B, A ; a pozitív változás maszkolása, MOV BEMP, B ; tárolása MOV BEM, A ; az új érték tárolása RET A frissítési feladatokat ellátó eljárás C nyelven/* C nyelvű frissítő függvény */ void be_friss (void) { char atm1,atm2; // átmeneti lokális változók atm1 = BEPORT; // beolvasás atm2= (bem ^ temp; // változás bemn = atm2 & bem; // negatív váltások bemp = atm2 & atm1; // pozitív váltások bem = atm1; // új értékek } 68.oldal

69 Kihangsúlyozzuk, hogy a PLC operációs rendszerének (működtető programjának) része a be-, kimenetek olvasása, írása. Ezekről a felhasználónak nem kell gondoskodnia A PLC készülékeknél függvények, segítik a jelváltás meghatározását. A MODICON készülékeknél a beolvasás frissítése egyúttal az éldetektálást is elvégzi. Elemi programszerkezetek A matematikai, logikai feladatok elemi programszerkezetek segítségével írhatók le. Ezek a már megismert program-blokkokból építhetők. Jellegzetes elemi program-szerkezetek: Lineáris (lefutó) program Ciklikus program elemi programblokkok sorozata, amely a program lefutása, (az elemi blokkok végrehatása) után nem tér vissza a program elejére. A program futási ideje alatt csak egyszer hajtódik végre. Pl. inicializálás stb. ismétlődő - elemi blokkokból álló programcsoport (ciklustörzs). A program futási ideje alatt ennek végrehajtása ismétlődik. Pl. a főprogram (a main) stb. Miután minden szoftver ciklikus szervezésű, ezért ezt részletezzük. Minden programciklus alapvetően a következő elemeket tartalmazza: ciklustörzs ciklusváltozó értékelés az a programcsoport, amely ismétlődik, az a változó, amelynek értékének tartománya meghatározza a ciklustörzs ismétlését, a ciklusváltozó értékének összehasonlítása a ciklusban maradás feltételeivel, Kezdőértékek megadása Ciklustörzs Ciklusváltozó módosítása Cv = érték? döntés az értékelés eredményétől függő programelágazás. A feladattól függően több változatban szervezhetők programciklusok. A szerkezet függ a ciklusváltozótól, az értékelés cikluson belüli helyétől. 69.oldal

70 Jellegzetes ciklus típusok: tól - ig.. (for to) ciklus 16 bájt törlése. MOV R7,#16 MOV ISM: MOV INC R0 DJNZ R7,ISM. /* C nyelven */ for ( n=0; n< 16; n++) { *p = 0; p++;} olyankor használjuk, amikor a ciklusba lépés előtt ismert az ismétlések száma, amíg.. (while) ciklus ISM: b,tov ; ciklustörzs... JMP ISM TOV:. /* C nyelven */ while ( p<16) { *p = 0; p++;} amíg a ciklusváltozó adott értéktartományba esik ismételten végrehajtja a ciklustörzset (a ciklusváltozó a törzsben módosul). A ciklus elöl-tesztelt. Cv = érték? Ciklustörzs majd-amíg...( do-while) ISM: ; ciklustörzs... CJNE A,BEM,ISM. /* C nyelven */ do { *p = 0; p++; } while ( p<16) először végrehajtja a ciklustörzset, majd amíg a ciklusváltozó adott értéktartományba esik ismétli azt ( a ciklusváltozó a törzsben módosul). A ciklus hátul tesztelt. Ciklustörzs Cv = érték? A műszaki feladatokat megvalósító programok struktúrája az ismertetett elemi programszerkezetek használatával 70.oldal

71 kialakítható. Egy alkalmazói program a következő alapvető egységekből áll: inicializálás a változók kezdőértékének, programozható perifériák üzemmódjának, megszakítási rendszer szükség szerinti beállítása, stb., lefutó típusú, főprogram (main) a feladatot ismétlődően végrehajtó program mindig (ciklikus), amely három fő részre bontható: - a bemeneti értékek frissítése, tárolása - a feladat szerinti műveletek megoldása az aktuális bemeneti értékekkel és az új kimeneti változók tárolása, - kimenetek frissítése a ciklusban meghatározott kimeneti változókkal. Start Inicializálás Bemenetek frissítése, tárolás Feladatok megoldása, függő változók tárolása Kimenetek frissítése Alprogramok (szubrutinok) alprogramok (szubrutinok) A részfeladatokat megoldó programrészek lefutó típusúak. A leírt általános felépítést szemlélteti a folyamatábra. 71.oldal

72 5.5. A PLD -k programozása A programozáshoz szükség van egy JEDEC formátumú biztosíték térképre, amely tartalmazza többek között: Az IC lábainak számát Az IC biztosítékainak (mátrixpontjainak) számát Mely mátrixpont milyen értéket kapjon az írás során. Az eszköz fizikai teszteléshez szükséges tesztvektorokat. A JEDEC fájl akár elkészíthető "kézzel" is, ha pontosan ismerjük az IC működését, felépítését valamint az egyes biztosítékok címét. Ez a módszer azonban nem javasolt, mivel rendkívül lassú, sok a hibalehetőség, és programozás előtti tesztelésre sincs lehetőség. Tanácsosabb inkább valamilyen fejlesztőprogram használata. A fejlesztőprogramok többféle módszert tesznek lehetővé a tervező számára a fejlesztéshez. Az egyik ilyen valamely hardver leíró nyelv (HDL - hardware description language) használata. Ezek közül néhány: ABEL (Advanced Boolean Expression Language) PALASM (PAL assembler) VHDL (Very high speed integrated circuit Hardware Design Language) Verilog HDL A hardver leíró nyelvek egy része alkalmas a teljesen eszközfüggetlen fejlesztésre, tehát nincs szükség gépi kód jellegű programozásra, hanem egy magas szintű (C-hez vagy Pascalhoz hasonló) nyelvvel dolgozhatunk, hagyományos, magas szintű programozási módszereket felhasználva. A leírónyelvek másik előnye, hogy lehetővé teszik bonyolultabb feladatok különálló, könnyebben kezelhető alrészekre bontását, ezzel is megkönnyítve a fejlesztést. Harmadrészt pedig, a hardver leíró nyelvek lehetővé teszik, hogy a fejlesztőrendszeren keresztül, a megadott tesztvektorok segítségével szimulálhassuk az eszköz működését még a leprogramozás előtt. Más tervezőrendszerek lehetővé teszik, hogy grafikus szimbólumokból (kapuk, flipflopok, stb.) sematikus ábrát készítve tervezzük meg a logikai hálózatot. Ilyen tervezőprogram például az OrCad is. Ez a módszer főleg az FPGA -k programozásánál elterjedt. Egyes tervezőrendszerek lehetővé teszik, hogy adott feladatot több forrással, 72.oldal

73 például különálló HDL programokkal, sematikus ábrákkal, vagy ezek kombinációjával tervezzünk meg. Ezeket a program lefordítása előtt a fejlesztőrendszernek egyesítenie (linkelnie) kell egymással. A fordítás során a megadott feladat leírását a fordító olyan leírássá alakítsa át, amely a célhardver szerkezetéhez legjobban illeszkedik. Ilyenkor a fordító valamennyi operátort (legyenek azok logikai, aritmetikai, relációs, stb. operátorok) NEM, ÉS, VAGY illetve KIZÁRÓ VAGY operátorral helyettesít. A forrás szintaktikai ellenőrzésére is ekkor kerül sor. A fordítás befejezése után az előállított logikai egyenletet általában optimalizálni kell. A Quine-McCluskey féle optimalizálási módszer ismert és egzakt eljárás, de sajnos meglehetősen lassú, leginkább az SPLD -k optimalizálásánál produkál elfogadható időt. Sokváltozós egyenletek esetén heurisztikus algoritmusokat érdemes használni. Ilyenek például a PRESTO illetve az ESPRESSO algoritmusok. A fejlesztőrendszerek általában többféle optimalizálási módszer közül engednek választani. A fordítás és optimalizálás után kerülhet sor a logikai rendszer szimulációjára. A szimulációhoz a tervezőnek tesztvektorok formájában meg kell adnia, hogy a bemenő jelek különböző lehetséges kombinációihoz (bemeneti állapothoz) a feladat célkitűzései alapján milyen kimenő jelek tartoznak, ezeket feltételezett kimenőjeleknek hívjuk. A tervezőprogram a megtervezett logikai rendszert használva meghatározza a tesztvektorokban meghatározott bemenőjel kombinációkhoz tartozó kimenő jeleket. Ezeket számított kimenőjeleknek nevezzük. Ha a feltételezett és számított kimenőjelek nem egyeznek meg, a tervezett rendszer nem felel meg a specifikációknak, és a hibát ki kell javítanunk. A feltételezett és számított kimenőjelek közti különbségek általában segítséget nyújtanak a hiba megtalálásában. A hardver leíró nyelvek nagy előnye, hogy tartalmazzák magukban a tesztelés lehetőségét. Ha a szimuláció során nem találtunk hibát, sor kerülhet a JEDEC fájl létrehozására az optimalizált logikai egyenletből, az adott PLD típusra. A JEDEC fájl által tartalmazott, fizikai teszteléshez szükséges tesztvektorok lehetőséget adnak arra, hogy a programozóba helyezet eszközt a valóságban is tesztelhessük, és a teszteredményeket összehasonlítsuk a szimulált kimenőjelekkel. 73.oldal

74 Megjegyezendő, hogy néhány fejlesztőprogram (ilyen az ispdesign EXPERT is) lehetőséget nyújt eszközfüggetlen tervezésre is. Ebben az esetben az optimalizálás után még két további lépés következik: az eszközválasztás és a leképezés. Az eszközválasztás során a program megvizsgálja, hogy a megtervezett logikai rendszer fizikai megvalósítására milyen programozható logikák alkalmasak, és ezek közül melyek felelnek meg a felhasználó által meghatározott egyéb követelményeknek (sebesség, fogyasztás, tokozás, ár stb.). A vizsgált kritériumok lehetnek többek között: A feladatban megfogalmazott, valamint az eszközben rendelkezésre álló be- és kimeneteinek száma. A feladat szorzattagjainak száma összehasonlítva az eszköz összes szorzattagjainak számával. A feladat által igényelt kimeneti típus (kombinációs vagy regiszteres) rendelkezésre áll-e az eszközben. Eleget tesz-e az eszköz a feladat esetleges speciális igényeinek: nyitott kollektoros kimenet, 3,3/5V-os kimenetek, bemeneti felhúzó ellenállások, stb. Rendelkezésre állnak-e az igényelt vezérlőjelek az eszközben: szinkron és aszinkron órajel, regiszter beíró és törlőbemenetek, kimenet engedélyező/tiltó jelek, stb. A leképezés során a programnak el kell helyeznie a kiválasztott eszközben a megtervezett áramkört. Ilyenkor a megvalósítandó egyenleteket hozzárendeli az eszköz kivezetéseihez és belső csomópontjaihoz. A leképezés során a program kihasználja az egyes SPLD eszközök, például a GAL22V10-nek azt a tulajdonságát, hogy egyes kimenethez tartozó mátrixkivezetések száma különböző, emiatt lehetőség van a takarékos helykihasználásra. Amennyiben az elhelyezés sikeres volt, sor kerülhet a JEDEC fájl létrehozására. Megjegyezendő, hogy mind az eszközválasztás, mind a leképezés tartogat magában hibalehetőségeket, és előfordulhat, hogy az alkalmasnak nyilvánított eszközről kiderül, hogy mégsem képezhető le rá az adott logikai hálózat. Ennek oka lehet az is, ha előre hozzárendelt kivezetéseket tartalmaz a terv, ilyenkor ugyanis gyakran előfordul, hogy a megkötések miatt a rendszer nem képes az optimális helykihasználásra. 74.oldal

75 6. Az I8051 mikrokontroller család C - nyelvű programozásának alapjai Az I8051 mikrokontroller család C - nyelvű programozását az alábbi programok támogatják: C51.exe compiller L51.exe linker / lokater LIB51.exe könyvtárszerkesztő OHS51.exe object-hex konverter A forrásnyelvű fájl írásának szintaktikai és szemantikai szabályai megfelelnek a hagyományos ANSI-C előírásainak. A mikrokontroller család belső hardver részeinek és külső memóriák az elérhető véges méretű memóriaterületek (int, ext, és cod memóriák), a beépített I/O egységek SFR regiszterei eléréséhez bővítéseket, és egyúttal megkötéseket is alkalmaznak. A programcsomaghoz tartozó Run-Time Library -k (függvénykönyvtárak) segítik a programfejlesztést. C51S.LIB a SMALL modell float aritm. nélkül C51FPS.LIB " " float aritmetikához C51C.LIB a COMPACT " float aritm. nélkül C51FPC.LIB " " float aritmetikához C51L.LIB a LARGE " float aritm. nélkül C51FPL.LIB " " float aritmetikához 6.1. Változók és deklarálásuk: A programban használt változók deklarálásakor meg kell adni a helyfoglaláshoz szükséges jellemzőket és az értéket. A helyfoglaláshoz a fordítónak ismernie kell a változó típusát, és esetlegesen a memória helyet (memória modellt). Változó típusok bit 1 Bit 0 vagy 1 signed char 1 Bájt oldal

76 unsigned char 1 Bájt signed int 2 Bájt unsigned int 2 Bájt signed long 4 Bájt unsigned long 4 Bájt float 4 Bájt ± 1,176E ± 3,40E +38 pointer 1-3 Bájt változók címe Az SFR és a bitcímezhet területek eléréséhez sbit 1 Bit 0 vagy 1 sfr 1 Bájt sfr16 2 Bájt Memória elhelyezkedés szerinti deklarálás data direkt címezhető belső memória ( 128 Bájt ) bdata bitcímezhet belső memória ( 16 Bájt ) idata indirekt címezhető belső memória ( 256 Bájt ) pdata a külső memória egy lapja ( 256 Bájt ) ( xdata teljes külső memória ( 64 kbájt ) ( ) code program memória ( 64 kbájt ) ) Ha kimarad a típus és memóriajelző, akkor a változó int típusú és a deklarált memória modell (SMALL, COMPACT vagy LARGE) dönti el az elhelyezést Operátorok: Az operátorok jelölik ki a műveleteket, illetve logikai és szintaktikai elválasztásokat jeleznek. Elválasztó { } logikai blokkhatár ( ) matematikai zárójelezés [ ] tömb indexelés, felsorolás 76.oldal

77 Aritmetikai Relációs Logikai + összeadás - kivonás ( egy operanduszu előjel) * szorzás / osztás % maradék képzés = értékadás < nagyobb > kisebb <= nagyobb egyenlő >= kisebb egyenlő = = egyenlő!= nem egyenlő && ÉS VAGY! NEM Bit (bitenkénti logikai műveletek) & ÉS VAGY ^ KIZÁRÓ VAGY << LÉPTETÉS balra >> LÉPTETÉS jobbra ~ EGYES komplemens Speciális ++ inkrementálás - - dekrementálás & tár-cím * índirekció -> mutató képző :? három operandusz ( ha: akkor? egyébként ) sizeof méretmegadás 77.oldal

78 6.3. Utasítások: A C programozási nyelvben kevés programutasítás van. Ezek meghatározott vezérlési szerkezetet határoznak meg. Utasítás típusok: Ciklusszervező Elágazást vezérlő Ciklust módosító Ciklusszervező utasítások: for az alábbi folyamatábra szerinti ciklusok, kialakítását teszi lehetővé 1.kifejezés 2. kifejezés Igaz? Ciklus törzs 3. kifejezés Programozáskor az utasítást az alábbi formában kell használni: for ( 1.kifejezés; 2.kifejezés; 3. kifejezés ) { ciklustörzs } az 1. kifejezésben kell megadni a ciklusváltozó kezdeti értékét, a 2. kifejezésben vizsgáljuk a ciklus végrehajtás feltételét ( ha a feltétel igaz, akkor végrehajtódik a ciklustörzs, ha nem akkor vége a ciklusnak), a 3. kifejezésben kell változtatni a ciklusváltozót. Példa: int i,j; /* változók deklarációja */ j=0; /* értékadás */ for ( i = 0 ; i < 10 ; i++ ) { j = j + i ; /* ciklustörzs */ } 78.oldal

79 while az alábbi folyamatábra szerinti ciklusok, kialakítását teszi lehetővé ( a ciklus elől tesztelt ) kifejezés Igaz? Ciklus törzs Programozáskor az utasítást az alábbi formában kell használni: while ( kifejezés ) { ciklustörzs } a kifejezésben kell megadni a ciklus futásának feltételét, Ha kifejezés = 1, akkor a ciklus végtelen. Példa: int i = 0, j = 6 ; /* deklaráció, értékadás */ while ( i < j ) /* kifejezés vizsgálat */ { i += 3 ; j += 2 ; /* ciklustörzs */ } /* while vége */ do while az alábbi folyamatábra szerinti ciklusok kialakítását teszi lehetővé ( a ciklus hátul tesztelt ) do Ciklus törzs kifejezés Igaz? Programozáskor az utasítást az alábbi formában kell használni: do { ciklustörzs } while ( kifejezés ) ; a kifejezésben kell megadni a ciklus ismétlésének feltételét, Ha kifejezés = 1, akkor a ciklus végtelen. 79.oldal

80 Példa: int i, j ; /* deklarációk */ i = 0 ; j = 6 ; /* értékadás */ do { i += 3 ; j += 2 ; } /*ciklustörzs */ while ( i < j ) /* kifejezés vizsgálat */ Elágazást vezérlő utasítások if az alábbi folyamatábra szerinti feltételes programelágazást valósítja meg. kifejezés Igaz? Igaz ág Programozáskor az utasítást az alábbi formában kell használni: if ( kifejezés) { igaz ág } Ha a kifejezés igaz, akkor hajtódnak végre az "igaz ág" műveletei. Hamis értéknél a következő programcsoportra adódik át a vezérlés. Példa: int i = 0; while (1 ) /* végtelen ciklus */ { i ++; /*A ciklus az i változót inkrementálja*/ if ( i == 12 ) /* Ha i = 12, a ciklus befejeződik */ break; } /* while vége */ if-else az alábbi folyamatábra szerinti feltételes programelágazást valósítja meg. Programozáskor az utasítást az alábbi formában kifejezés kell használni: i Igaz? n if ( kifejezés) { igaz ág } Igaz ág ( if ) Hamis ág ( else ) else { hamis ág } 80.oldal

81 Ha a kifejezés igaz, akkor hajtódnak végre az "igaz ág" műveletei. Hamis értéknél az else utasítás utáni programrész ("hamis ág") műveleteire adódik a vezérlés. Példa: unsigned char data i; unsigned char bdata j; while ( 1 ) /* Végtelen ciklus */ { if (i < j ) { i++ ; } /* if igaz ág */ else { i -= 5 ; } /* if hamis ( else ) ág */ } /* while vége */ else-if utasítás a feltételes programelágazások egymásba ágyazását segíti. A szerkezetet az alábbi folyamatábra szemlélteti. if kifejezés Igaz? n Programozáskor az utasítást az alábbi formában kell használni: i if igaz ág else -if kifejezés Igaz? n if ( if kifejezés) { if igaz ág } else-if ( else-if kifejezés ) i { else-if igaz ág } else-if igaz ág els-if hamis ág else { else-if hamis ág } 81.oldal

82 Példa: char data c; char idata j; if ( c>= '0' && c<= '9' ) { i = c - 48 ; } /* if igaz ág */ else if ( c >= 'A' && c<= 'F' ) { i = c - 55 ; } /* else-if igaz ág */ else { i = c - 87 ; } /* else-if hamis ág */ switch - case utasítás pár - egy változó értékétől függő - több elágazás programozását teszi lehetővé. Programozáskor az utasítást az alábbi formában kell használni: switch ( változó ) { case 1. érték : 1.művelet ; break ; case 2. érték : 2.művelet ; break ;. case n. érték : n. művelet ; break ; default: egyébként ez a művelet ; break ; } Az utasítás a változó értékét egymás után összehasonlítja a case -hez tartozó értékkel. Ha egyezik, akkor hajtódik végre a sorba irt művelet, és a további vizsgálat befejeződik. A default művelete csak akkor következik, ha a case sorok egyikével sincs egyezés. Megjegyzések: A default sor elmaradhat, ilyenkor a következő utasítás végrehajtása következik. Ha egy case n. érték: sorban nincs művelet; break; akkor ehhez az értékhez is a következő művelet tartozik. 82.oldal

83 Példa: { main() /* Főprogram */ do /* hátul tesztelt ciklus */ { ngm =~ *NGS; switch (ngm) { case 0x1: ldm = 0x1; break; case 0x2: case 0x6: case 0x4: ldm = 0x80; break; default: ldm = 0x0; break; } /* SWITCH vége */ LEDS =~ ldm; if(ng7==1) break; /* kilépés a ciklusból */ } while(1); /* végtelen ciklus, do-while vége */ } /* főprogram vége */ Ciklust módosító utasítások A ciklus elhagyását, vagy egy ciklusrész kihagyását teszik lehetővé. Értelemszerűen feltételes szerkezetben használjuk. break utasítás az aktuális ciklus elhagyását vezérli. egy ciklus esetén ciklus feje.. break;.. ciklus vége egymásba ágyazott ciklusoknál 1.ciklus feje. 2.ciklus feje. break;. 2.ciklus vége. 1.ciklus vége. 83.oldal

84 continue utasítás a ciklusfejre adja a vezérlést. Példa: for (i = 0; i <= ; i++) { if ( i == 5 ) continue; j = i; } 6.4. Az élőfeldolgozó (preprocesszor) utasításai A forrásnyelvű program fordítása két lépésben történik. 1. Az elődeldolgozó (preprocesszor) készíti elő a végleges fordításhoz a szöveges fájlt, 2. a compiller hozza létre a tárgykódú *.obj fájlt. A preprocesszor részére is adhatók utasítások, melyek a fordítási időben fejtik ki hatásukat. Ezek az utasítások javítják a program olvashatóságát, rövidítik a forrásprogram hosszát, lehetőséget adnak előre definiált objektumok beillesztésére stb. A preprocesszor -nak szóló utasítások a # karakterrel kezdődnek, és mindig csak egy sort foglalhat le. #define utasítással 1. előre definiálható konstans ciklus feje.. continue;.. ciklus vége. #define konst_neve, érték Pl. #define ZERO 0 /* 0 helyett ZERO */. char c;.. if ( c == ZERO ) /* Forrásszövegben ZERO */ { /* ZERO helyére 0 kerül */.. }. 84.oldal

85 . 2. Előre definiált kifejezés-sor macro létrehozása A kifejezésben adott műveleteket a preprocesszor végzi el és egy számértéket ad csak át a compiller -nek. Pl. #define MACRO-NEV kifejezés #define max (a,b) ( (a) > (b)? (a) : (b) ) /* macro definiálása */.. int i,j;. max ( i,j ); /* macro hívása */. A preprocesszor csak az ( (i) > (j)? (i) : (j) ) kifejezés kiértékelt értékét adja tovább. #undef azonosító utasítással megszüntethető a #define hatása a fordítás további részében. #if, #else, #ifdef, #ifndef, #elif, #endif feltételes fordítási utasítások. Minden egyes feltételes fordítási blokkot az #endif kell lezárjon. Pl. #if kifejezés 2. #if kifejezés.. #endif #else. #endif 85.oldal

86 6.5. Függvények A C programozási nyelv alapvető egységei a függvények. Megkülönböztetünk: a rendszer részét alkotó könyvtári, és a programozó által irt felhasználói függvényeket. (A LIB.EXE program segítségével a felhasználói függvények is beszerkeszthetők könyvtárba.) A felhasználói függvények kitüntetettje a main ( ), amely a program un. vezető függvénye ( a főprogram ). A függvényeknek vannak paraméterei és típusa. paraméter a függvény bemenő változóinak az értéke, típusa a visszaadott változó típusa. Azok a függvények, amelyek nem adnak vissza értéket a void típusúak Függvények definíciója és deklarációja Definíció a függvény megírása. Általánosan a függvény az alábbi felépítésű: típus fv_név ( paraméter_azonosítók) paraméter_deklarációk ; { belső változó_deklarációk; függvénytörzs return (visszaadott_érték); } típus a visszaadott érték típusa, paraméter_azonosítók: a függvény bemenő változók nevei, (a függvénytörzsben ezekkel a nevekkel kell hivatkozni az átadott értékekre), paraméter_deklarációk: az átadott paramétereket deklarálják típus szerint (még a kapcsos zárójel előtt), 86.oldal

87 belső változó deklarációk: csak a függvény által használt (és "látott") változók deklarálása, függvénytörzs: tartalmazza az utasításokat, az esetleges függvényhívásokat, melyek a kívánt funkciókat végrehajtják, visszatérési érték: a hívónak visszaadott érték (ha a fv. void típusú, akkor a return ( ) nem kell!). Deklaráció a fordító részére nyújtott információ a függvény jellemzőiről. típus fv_név ( paraméter_típusok ); (Elégséges csak az átadott paraméterek típusainak a felsorolása.) A függvény-deklaráció mindig előzze meg a definíciót. Így lehet az adott modul elején, vagy egy " xy.h " un. include hader fájlban. A függvényeket direkt módon, vagy indirekten - mutató segítségével - hívhatjuk. direkt k = anal ( cs ); /*k-ba visszaadott ért.*/ indirekt int (*fvpnt) ( ); /*fv-re mutató pointer*/ fvpnt = anal; /* pointer értékadása */ k = (*fvpnt) ( cs ); /*k-ba visszaadott ért.*/ A függvények speciális változatai a megszakításokat kiszolgáló rutinok. Deklarációjuk: void I_T0 (void) interrupt 1 using 2 { függvény-törzs; } A megszakítás kiszolgálásához nem célszerű a paraméter átadás, illetve a függvénytípus deklarálása. Mindkét helyen a void megadása szükséges. Az interrupt n direktíva adja meg, hogy melyik sorszámú (n) megszakítás kiszolgálását végzi a rutin. A using x direktíva segítségével kijelölhető - 0 x 3 között - a rutin által használt regiszterbank. Általában nem szükséges a regiszterbank kijelölése. Csak speciális felhasználásoknál célszerű elkülöníteni a csak megszakítás kiszolgáláshoz használandó bankot. 87.oldal

88 A megszakítást, kérő bitet törölni kell!! Csak az időzítésnél hagyható el! Ilyen felhasználásnál a rutin meghívásáig biztosan jön egy újabb órajel (fq/12), és ezzel megszűnik a megszakítást kérő bit, a használt időzítő (T0 vagy T1) túlcsordulása. A compiller automatikusan beiktatja a használt regiszterek stackbe mentését, illetve visszahívását, és RETI utasítással fejezi be a rutin kódolását! A következő részben néhány példával szemléltetjük a függvények deffinicióját, illetve használatukat Példa: 1. Az alábbi függvény az I80C552 mikrokontroller adott analóg csatornájára jutó feszültség értékét adja vissza szavas (int) alakban. # include <reg552.h> /*Az SFR regiszterek deklarációját tartalmazó include fájl */ extern int anal ( char ); /* A függvény deklarációja */ int anal( cs ) /* A függvény definíciója */ char cs; { unsigned int i,j; ADCON = 0x08 cs; /* Indítja a "cs" csatornát*/ do { ACC=ADCON; } while( ADCI!= 1 ); /* A konverzió vége? */ i= ADCH; /* Mért érték kiolvasása */ j=(adcon)&0xc0; i =_irol_ (i,2); /* Szám konverzió */ j = _iror_ (j,6); i = j+i; ADCON = 0; /* Uj méréshez előkészítve */ return ( i ); } 2. Feladat, hogy a PC klaviatúra egy gombjának lenyomására mérje le a 8 analóg csatorna jelének értékét. A mért értékeket tárolja el a belső memóriában, és ugyanakkor irja ki a képernyőre táblázatosan. /* Analóg beolvasás */ #include <gyak.h> #include <intrins.h> #include <stdio.h> extern int anal(char); /* az anal fv. deklarációja */ 88.oldal

89 main() { while(getkey( )!= 'K' ) /* mérés inditás, K kilép */ { unsigned int data *ert; /* letétel helyére mutat */ unsigned int cs = 0; /* csatorna száma*/ int k; /* visszakapott érték tárolója*/ ert=mer; /* kezdőérték */ printf("\n"); /* soremelés */ printf(" Új mérés\n"); /* táblázat feje */ printf("csatorna Mért érték\n"); for (poz=0;poz<=7;poz++) { k=anal(poz); *ert=k; * lehelyezés */ printf(" %u. %d \n",poz&0xff,*ert); /* kiir */ ert++; /* következő hely */ } /* for vége */ } /* while vége */ } /* main vége */ 3. A T0 időzítő/számláló valósidejű késleltetőként -i használatának inicializálása astabil frekvenciagenerátorként (2 üzemmód). void m_inic(void) { TMOD=(TMOD&0xf0) 2; TH0=63; TR0=1; ET0=1; EA=1; } 4. Megszakítás rutin, amely LEP számú megszakítás után az ID_B bitet 1-be állítja. Előkészíti az újabb késleltetést a kesl=0 művelettel. void I_T0 (void) interrupt 1 { if(++kesl==lep) {kesl=0;id_b=1;} } 5. Megszakítás rutin ütemgenerátor létrehozásához. A megszakításokat a kesl1 szóban számlálja. A kesl2 tartalmazza az aktuális végszámot, Az ütem aktuális száma van az utm (ütemszámláló) bájtban. void MT0 (void) interrupt 1 { switch(utm) { case 1: case 3: kesl2=50000;break; 89.oldal

90 case 2: case 4: kesl2=20000;break; default: kesl2=8000;break; } if(++kesl1>kesl2) {IDB=1;kesl1=0;} } A rutin az 1. és a 3. ütemben 50000, a 2. és a 4. ütemben 20000, többiben pedig 8000 megszakítás után állítja - a késleltetés leteltét jelző IDB bitet 1-be. Tetszőleges ütemszámhoz írható hasonló ütemgenerátor! 90.oldal

91 6.2. Programfejlesztői környezetek A fejezetben a 8051/31 mikrovezérlő család, valamint a három ismertetett PLC programjainak fejlesztéséhez alkalmazható integrált környezet alapjainak megismerését segítjük. Miután az adott logikai vezérlők különböző cégek gyártmányai, természetes hogy a fejlesztői programcsomag is más és más. Ugyanakkor felépítésükben, használatukban nagyon sok a hasonlóság. Itt a közös jellemzőket emeljük ki a teljesség igénye nélkül. Közös jellemző a jól használható un. project ablak. Az ablakban a teljes program-állomány felépítését tekinthetjük át. Itt az egérrel kattintgatva választhatók a különböző műveletek. A környezetekben az alább felsorolt - programfejlesztés lépések is közel azonosak. A programfejlesztés lépései: a. A programokat és programkörnyezetet tartalmazó projekt létrehozása és letétele a háttértárra, b. az alkalmazandó hardver konfiguráció beállítása, c. a változók deklarálása és forrásállományok megírása, hozzárendelése a projekt hez. Mindegyik programcsomag nagyon jól használható, példákkal is bőven ellátott Segítő (Help) szolgáltatással rendelkezik. A fejlesztősnél a Help használata megkönnyíti a munkát, illetve segíti a tevékenység begyakorlását. A 8051/31 mikrokontroller bázisú mikrogépek assembly, és C nyelvű program fejlesztése, programellenőrzése és futtatása végezhető a Keil Electronic szoftver cég µvision4 elnevezésű integrált programfejlesztői környezetében. Az indítóikon: Az OMRON cég fejlesztő programcsomagja a CX-Programmer. Azonos néven frissített és továbbfejlesztett változatai használhatjuk. Az indítóikon A Schneider Electric ajánlott programcsomagjainak legutolsó változata a Unity Pro XL. Az indítóikon A Siemens PLC család programjainak fejlesztéséhez alkalmazható a Simatic Step7 programcsomag. Az indítóikon 91.oldal

92 A felsorolt PLC programfejlesztésére ismertetett fejlesztői környezetek mindegyikével készíthető az öt szabványos PLC nyelven (LD létra diagram, FBD funkció blokk diagram, IL utasítás lista, SFC sorrendi funkció rajz (gráf) és ST strukturált szöveg) program. Hangsúlyozni kell, hogy ma a programfejlesztés nem gyártó specifikus!. Bármelyik logikai vezérlővel kívánunk egy irányítási feladatot megoldani, mindig azonosan kell elvégezni a logikai tervezést. A Digitális Technika II. tantárgyban ismertetett eljárásokat a PLC programozásnál is célszerű alkalmazni. Ugyanakkor új elem, hogy egyazon program különböző programrészei (szegmensek) más-más programozási nyelven írhatok. Az hogy mikor melyik nyelvet célszerű alkalmazni a feladat jellege, strukturáltsága alapján már a logikai tervezés során kell eldönteni. Csak egy példa, hogy a sorrendi vezérlések programozásához nagyon jól alkalmazható az SFC. Az ismertetett programozható vezérlők mindegyikénél a program strukturált. Az egyes programegységeket különbözőként nevezik, úgymint task, szekció, objektum stb. Külön egységekként írhatók a különböző típusú megszakításokat kiszolgáló programrészek is. A programírás lépései: az új project megnyitása, a hardver konfiguráció kiválasztása, a feladatnak megfelelő programszerkezet meghatározása, a globális és lokális változók deklarálása, a szimbólum tábla megírása, a programegységek forrásállományának a kiválasztott nyelven történő megírása. A programfejlesztéshez természetesen hozzátartozik a szimulációs (offline), és a valósidejű (online) tesztelés. Az integrált fejlesztői programcsomagok eltérő szolgáltatásokkal és formával de alapvetően tartalmazzák ezeket a szolgáltatásokat. A továbbiakban bemutatjuk az egyes programcsomagok képernyő képét. Néhány mondatban és példával szemléltetjük a fejlesztés első lépéseit A 8051/31 család programfejlesztői környezete A szoftver indítóikonjára kattintva először a mellékelt kép jelenik meg. Néhány másodperc múlva láthatjuk meg a 63. ábrán láthatóhoz hasonló képet. 92.oldal

93 A fejlesztő program menüszervezésű. A menüsor alatt a műveletek gyorsítása érdekében - a leggyakrabban használt műveletek ikonjai helyezhetők el, és így kattintással indíthatók. Három fő egysége környezetnek: - a menük és vezérlő ikonok, - a project ablak, és - a munkaablak. Menük és vezérlőikonok Project ablak 63. ábra Munka Megjegyzés: A mutatott üres ablak csak akkor jelenik meg, ha az előző használatot úgy fejeztük be, hogy a fejlesztett project -et bezártuk. Egyébként emlékszik a rendszer a legutolsó munkára. A továbbiakban csak az új programcsomag fejlesztésének lépéseit mutatjuk be. Az új fejlesztés a Project menüből kezdeményezhető (64. ábra). 93.oldal

94 Új menüpont 64. ábra A megnyitott új fejlesztés project állományát tárolni kell. A 65. ábrán a minta könyvtárba elso néven mentjük azt. A mentést követően a hardverválasztást automatikusan felkínálja. A 66. ábrán a Philips 552 típusú mikrokontrollerének választása látható. 65. á bra Az ablak bezárása után a megnyitott projekt ablakban (67.ábra) látjuk az eddigieket Projekt beállítások Modulok összeállítása 66. ábra 94.oldal

95 67. ábra A Projekt beállítások ikonnal nyitható meg a 68. ábra szerinti ablak, ahol állíthatók be többek között a programmodulok címei, fordítási és szerkesztési direktívák, valamint a szimulációs, vagy valós idejű ellenőrzés (Debug) feltételei. 68. ábra A Modulok összeállítása ikonnal magnyíló ablakban (69. ábra) a feladat programmoduljainak összeállítása végezhető. Az egybekapcsolt részek a fordítását, szerkesztését együtt hajtják végre a megfelelő parancsok. 69. ábra Az egyes programmodulok írására szolgáló editorok (assembly, C), a fordítás, valamint programellenőrző (szimuláció, valós idejű) funkciókat a mérési gyakorlatokon kell megismerni és használni. 95.oldal

96 CX-Programmer Az OMRON PLC -k programozásához alkalmazható ez a fejlesztői környezet. A 70. ábrán 70. ábra Tekintsük át, hogyan kell megnyitni egy új feladat programozását. egy programrész létra diagramban írt forrása látható a munkaterületen. A felső sorokban láthatók a menük, a vezérlő, beállító ikonok nagy választéka, valamint baloldalon a project ablak. Itt a Sorompo1 program láthatjuk. elnevezésű felépítését 1. A fejlesztői program megnyitása után megjelenő menükínálatból (71.ábra) a File menüből válasszuk a New pontot. 71. ábra 2. Az új megnyitása után a 72. a. b. c. ábrák szerinti ablakban - kell megadni a feladathoz használt PLC azonosítóit, nevet, CPU típust, kommunikációs hálózatot. A név legyen Parkolóház A CPU választásnál a CJM1 típus mellett ki kell választani (Settings) a CPU23 változatot. 96.oldal

97 a. b. 72. ábra 3. Ezek után kell megadni a használt illesztő áramköröket, vagyis meghatározzuk a teljes hardver konfigurációt. A 73. ábrán mutatjuk a beállítás menetét. Az a project menüből az IO Table and Unit Setup pont kiválasztása után a [0000] Main Rack menüpont megjelenik a rack lehetséges modul-helyei (slot). Itt egy üres slot -ra kattintva kínálja fel a program a választható modul választékot. A Basic I/O menüpont alatt kapjuk a diszkrét be-, kimeneti egységek választékát, amelyből kijelölhetjük a beillesztendő modult. c. 97.oldal

98 73. ábra. 4. A konfiguráció beállítása után az előre megtervezett programstruktúrát kell kialakítani. A 74. ábrán követhetjük a műveletsor egyes lépéseit. Először a Programs menüben adható meg minden új modul, másképpen task. A tulajdonságok név, task típus (a példában ciklikus task) stb.- beállítása után következik a taskon belüli almodulok szekciók kiválasztása. 98.oldal

99 74. ábra Az eljárás végén a Sorompo1 szekció megnyitása után a választott programnyelv editora nyílik meg. Itt írhatjuk meg a forrásállományt. 99.oldal

100 Schneider Electric Unity Pro XL A Schneider Electric PLC -k programozásához alkalmazható a Unity Pro XL fejlesztői környezet. A kiválasztott készülékek programja a környezetben fejleszthető, szimulálható, felépítését láthatjuk. 75. ábra Tekintsük át, hogyan kell megnyitni egy új feladat programozását és valós idejű tesztelés is végezhető. A 75. ábrán a Sorompo1 elnevezésű programrész létra diagramban írt forrása látható a munkaterületen. A felső sorokban találhatók a menük, a vezérlő, beállító ikonok nagy választéka. A baloldalon van a project ablak. Itt a teljes project 1. A fejlesztői program megnyitása után megjelenő menükínálatból a New ikont, vagy a File menüből a New pontot válasszuk. 2. Az új megnyitása után, a megnyíló ablakban (76. ábra) kell kiválasztani a feladathoz használt M340 típusú készülékcsalád CPU típust. A választásunk a BMX P legyen. 76. ábra 100.oldal

101 3. Ezek után kell kiválasztani hardver konfigurációt A konfigurálást a rack kiválasztásával kell kezdeni. A 77. ábra képein keresztül követhetjük a műveletet. A 0:PLC bus pontot választva jelenik meg az alkalmazható legnagyobb rack képe, amelyben már a tápegység és a CPU egység benne van. A feladathoz szükséges rack beállításához a rack képének bal oldalán 0-val jelölt fülre kattintva kapjuk a választási lehetőségeket. Itt a szükséges slot számú modulra kattintva fejeződik be a beállítás. 77. ábra A következő művelettel kiválasztott rack egyes helyeire (slot) kell megadni az illesztő modulokat. A lépések a 78 ábrán követhetők 101.oldal

102 78. ábra 4. A konfiguráció beállítása után az előre megtervezett programstruktúrát kell kialakítani. A 79. ábrán követhetjük a műveletsor egyes lépéseit. Először a Programs menüben adható meg minden új modul, másképpen task. A tulajdonságok név, task típus (a példában ciklikus task) stb.- beállítása után következik a taskon belüli almodulok szekciók kiválasztása. 102.oldal

103 79. ábra 103.oldal

104 Siemens Step 7 A STEP7 környezetben végezhetők a SIEMENS PLC -k programozása. A 80. ábra szemlélteti a programozás egy részletét. A következőkben a Step7 környezetben követjük végig egy új feladatot megoldó projekt programfejlesztésének kezdő lépéseit. 80. ábra 1. A fejlesztői program megnyitása után ne a Projekt Wizard ot használjuk, hanem a a File menüből válasszuk a New pontot. 81. ábra 104.oldal

105 A megnyíló ablakban (81.ábra) kell megadni a projekt nevét és a könyvtárat. Alaphelyzetben a \step7\s7proj könyvtárat kínálja fel a program. A Browse gomb aktiválásával új könyvtárat is választhatunk. 2. Az új project megnyitása után kell kiválasztani az alkalmazott PLC állomást, most a SIMATIC 300 Station t. A kiválasztás menete a 82. ábrán követhető. A megnyíló ablakban a megadott project névre jobb gombbal kattintva az új Object (Insert New Object) kiválasztása után adjuk meg a szükséges állomást! 82. ábra 3. Ezek után ki kell választani az illesztő áramköröket, vagyis meghatározzuk a teljes hardver konfigurációt. A műveletsor lépései a következők? A kiválasztott PLC Station nál a jobb oldalon találjuk a Hardware menüt. A megjelenő üres ablakban jelenítsük meg a katalógust a Wiew menü Catalog kiválasztásával. Innen lehet először a rack -et (rail), majd a tápegységet kell beszúrni. A CPU és azt követően az illesztő modulokat kell elhelyezni a rack en (83.ábra). 105.oldal

106 83. ábra 106.oldal

107 84. ábra 4. A konfiguráció beállítása után az előre megtervezett programstruktúrát kell kialakítani. A 85. ábrán követhetjük a műveletsor egyes lépéseit. A konfiguráció felvétele után már S7 Program menü is van. Ebben felkínált OB1 operációs blokk a ciklikus működést biztosítja. Ebbe kell elhelyezni a ciklusban működtetett program blokkokat. Az egyes blokkok különböző nyelven is programozhatok. 107.oldal

108 85. ábra Az OB1 ben közvetlenül is írhatunk programot LD, FBD és STL (IL) nyelveken. Ugyanakkor be is szúrhatunk funkciókat (FC). Funkció Blokkokat (FB) valamint adatblokkokat A PLC k programozási nyelvei A fejezetben röviden áttekintjük a Programozható Logikai Vezérlők programozási nyelveinek fejlődését. Részletesebben ismertetjük az IEC szabványnak megfelelő programnyelveket A PLC típusonkénti programozás A PLC -k fejlesztésének, illetve alkalmazásuknak kezdeti szakaszában cca között a gyártó cégek saját programozási környezetet, valamint ehhez illeszkedő nyelveket 108.oldal

109 használtak. Bizonyos fokig már ezek között is volt hasonlóság. Mindegyik változatban használták a létra-diagramot, az alapvető funkcionális blokkokat, valamint az utasítás listát. Az Intézet oktatásának keretében a hallgatók megismerkedtek az Omron, a Schneider Electric, a Siemens cégek programozható vezérlőinek alkalmazásával, valamint programozásukkal. A PC-k megjelenése (1981) előtt a PLC -khez soros vonalon illesztett - programozó készülékeket (bőröndöket) alkalmaztak. A MODICON készített először képernyőn, grafikus szimbólumokkal programozható készüléket a P180, és a P190 típusúakat, amelyek CP/M rendszerben Intel 8080 mikroprocesszorral készültek. Jelentős változást a PC-k alkalmazása eredményezett. A kompatibilis személyi számítógépeken futtatott integrált programfejlesztői környezeteket alkalmazták, illetve ma is sok helyen alkalmazzák Az első változatok még DOS környezetben futottak. Az elmúlt mintegy másfél évtizedben a Windows, illetve Unix operációs rendszerekben futó fejlesztői programok hódítottak teret. A multitaskos programfuttatás biztosítja a segítség (Help), és egyéb szolgáltatások, pl. adatbázis módosítás valós idejű alkalmazását A PLC programozási nyelvek szabványosítása A PLC -k széleskörű elterjedése az automatizálásban szükségessé tette a különböző nyelvek, programozási eljárások szemléletbeli közelítését, vagyis egy nemzetközi szabvány-ajánlás létrehozását. Az IEC nemzetközi szabványt 1993-ban alkották meg, amely az alábbi 5 nyelvet szabványosított Ladder Diagram (LD) Function Block Diagram (FBD) Instruction list (IL) Sequence Function Chart (SFC) Structured Text (ST) -Létra diagram szimbólumokkal -Funkció blokkos programozás -Utasítás lista írása -Gráf jellegű programozás -Strukturált szöveg magas-szintű nyelv 109.oldal

110 A jelentősebb PLC gyártók (Allen-bradley, Omron, Schneider - Electric, Siemens) a saját készülékeikhez alkalmazható fejlesztői környezeteket kifejlesztették. A tantárgy első félévében az LD, FBD, IL és az SFC nyelveken történő programozással foglalkozunk. Megjegyzés: Siemens cég az egyes programozási nyelveket más elnevezéssel használja. Az IL elnevezés helyett az STL, az SFC helyett Graph, míg z ST helyett SCL A létradiagram az LD (Ladder Diagram) nyelv. Az LD programozási nyelvet tulajdonképpen mindegyik PLC, már a kezdetektől használja. A szabványosítás a jelölésekre vonatkozik elsősorban. Az egyes gyártók által fejlesztett programozói környezetek funkció-jelölései között csekély az eltérés. Az LD nyelv a bites-logikai függvények programozásához az un. áramút-terveknél használt relé-logikai szimbolumokat használja. Minden fejlesztői környezetben közel azonosan használt szimbólumok: A programozott logikai függvény független változóihoz használt szimbolumok a változó címével (Addr). 1 értékénél zár 0 értékénél bont 0-1 (pozitív) értékváltásakor egy ciklusig 1 értékű 1-0 (negatív) értékváltásakor egy ciklusig 1 értékű A programozott logikai függvény függő változóihoz használt szimbolumok a változó címével (Addr). A függvény 1 értékénél aktív A függvény 0 értékénél aktív 110.oldal

111 Összetett funkciót ellátó kimeneti szimbólumok: A címzett bit beírása A címzett bit törlése A címzett bit 0-1 váltásakor a szimbólumot követő vonalon egy ciklusig 1 értéklesz. A címzett bit 1-0 váltásakor a szimbólumot követő vonalon egy ciklusig 1 értéklesz. Aktíválakor rutint (funkció blokk) hív. A szimbólumok soros, párhuzamos összekapcsolásához használhatók a vonalak Vizszintes csatolás Függöleges csatolás Esetenként önállóan rajzolható vonallal is történht az összekapcolás. A bájtos, szavas logikai-, és aritmetikai függvényeket blokk ként kell megadni. A blokk általános jelölése egy keret, amelynél kívül, és belül vannak jelölések. a blokk felett van a blokkazonosító, a keretben a funkció és a be-, kimenetek megnevezés van, a bemenetek (független változók) a keret bal oldalához, a kimenetek (függő változók) a keret jobb oldalához csatlakoznak. Kitüntetett funkciója van az EN és ENO jelű be-, és kimenetnek. Az EN (Enable) bemeneten lehet 1-el (zárt áramút) engedélyezni, 0-val (szakadás) pedig tiltani a funkció végrehajtását. Az ENO (Enable out) kimenethez további blokkok csatlakoztathatók. Ilyen modon több funkció feltételes végrehajtása programozható. A blokk ttulajdonságainál állítható, hogy látszonak-e az EN és az ENO. Amennyiben látszanak, akkor az EN bemenethez kell csatlakoztatni feltételt. A 86. ábrán példát láthatunk blokk alkalmazására. Az a. ábrán a TON (bekapcsolás késleltető) hívása látható. Itt van szerepe az engedélyezésnek. A késleltetés csak akkor indítja az IND változó 1 szintje, ha az ENG változó is 1. A PT (Preset Time) bemenethez 111.oldal

112 időváltozót kell adni konkrét értékkel, vagy memóriahivatkozással. A Veg változó értéke 1 lesz, amikor letelt a késleltetés és az IND=1. Az IDO jelű memória szóban a futó idő van. a. b. 86. ábra A b. ábra egy előre-hátraszámláló (CTUD) alkalmazását mutatja. Itt nem használjuk a számlálás feltételhez kötését. A blokkon belüli azonosítók mutatják a bemenetek-kimenetek funkcióit. A CU, CD számláló, az R törlő, az LD betöltő bites bemenetek. A PV (Preset Value) bemenetre adott Kap értéke, határozza meg a számláló kapacitását, amit az LD tölt be. A QU, QD bit típusú kimenetek a megfelelő irányú túlcsordulást jelzik. A Szam változóban követhetjük a számláló pillanatnyi tartalmát. A 87. ábra egy adott logikai feladat LD -ben írt programjára mutat példát. A Tart jelű bitet a Be változó 1-be, míg a Ki változó 0-ba írja. A Tart bit beírása indítja az FBI_1 bekapcsolás késleltető számlálót. 3 sec elteltével lesz aktív a Lamp változó. 87. ábra 112.oldal

113 A következőkben áttekintjük, hogy a megismert fejlesztői környezetek LD editorainak használatát Az FBD (Function Block Diagram) nyelv. Az FBD nyelvben a bites logikai műveletekre is az ismertetett felépítésű blokkok használhatók. A legfontosabb bites logikai műveletek blokkjai: Három bemenetű ÉS kapu NOT Tagadás Két bemenetű XOR kapu Négy bemenetű VAGY kapu A megfelelő könyvtárakban minden funkciót végrehajtó blokk kiválasztható. A blokkok megfelelő ki-, és bemeneteit kétféle megoldással lehet összekapcsolni. Egyik a vonallal történő összekötés. A másik estben a blokk csatlakozási pontjához írjuk az alkalmazott változó szimbólumát. A kettő vegyesen is alkalmazható egy kivétellel. A 88. ábrán látjuk hogyan tiltott az és engedélyezett az összekötés. tiltott megengedett 88. ábra 113.oldal

114 Az 89. ábrán az LD -ben programozott feladat (63.ábra) FBD programozású változatát látjuk. 89. ábra Utasítás listás IL (Instruction Logic) nyelv Az IL nyelv tulajdonképpen assembly programozási nyelv. Az alábbi táblázatban foglaltuk össze a műveleti utasításokat (operátor) és jelentésüket. A Módosító mutatja, hogy az alapjelölés bővítését. Az N a tagadás, pl. LD ill. LDN. A zárójellel csoportba foglalhatók ú az ezt követő utasítások. A C, ill. a CN a Carry bitre utal és csak BOOL típusú változónál használható. Jelölés Jelentés Módosító LD Behoz N ST Kivisz N S Beír R Töröl AND ÉS N, N (, ( OR VAGY N, N (, ( XOR Kizáró VAGY N, N (, ( NOT NEM ( ADD Összead ( SUB Kivon ( MUL Szoroz ( DIV Oszt ( MOD Maradék képzés ( GT Nagyobb ( GE Nagyobb - Egyenlő ( EQ Egyenlő ( NE Nem Egyenlő ( LE Kisebb - Egyenlő ( LT Kisebb ( CAL Funkció hívás C, CN JMP Feltétel nélküli ugrás C, CN RET Visszatérés C, CN 114.oldal

115 Az operátorok után kell írni a változók azonosítóját (szimbólum vagy cím), illetve zárójelek között a művelet csoportot, amire az utasítás vonatkozik. Függvények, funkció blokkok hívás formája: CAL f_név (függvény paramétereinek értékadás). Az előzőekben már ismert feladat (63.ábra) IL nyelvű programlistája: LD Be (* A tart vezérlése *) OR Tart ANDN Ki ST Tart CAL FBI_2 (In := Tart, PT := t#3s, Q => Lamp ) (* a késleltető hívása *) Megjegyzés: a Siemens Step7 programozói környezet nem használja az LD és az ST operátorokat. A három alapnyelv egymásba átkonvertálható. Az Automatika II. tantárgyban az S7 programozását részletesen tárgyalták. A fejezetben erre nem térünk ki részletesen. (Jegyzet Dr Tverdota Miklós: Automatika II/2) Az SFC (Sequential Function Chart) nyelv A sorrendi vezérlések tervezésénél már ismertettük az állapot-gráf segítségével való működési leírást. Emlékeztetőül nézzük meg az állapotgráf felépítését. A 90. ábrán látható állapotgráf -ot elemezzük. X 0, X 3 X Y 3 X X 1 X X 2 Y 0 X 3 Y 2 X 1 X 0, X 1, 90. ábra X 0 Y 1 Z X 1, X 2, A gráfból leolvasható, hogy a szekvenciális hálózatnak négy állapota (ütem, lépés, step) van. Az ütemekben kiadott állapotkombinációk (állapot azonosítók) Y 0, Y 1, Y 2, Y 3. A bemeneti kombinációk X 0, X 1, X 2, X 3, és a kimeneti jelkombinációk (akciók) Z 0, Z 1, Z 2, Z 3 száma is négy. Vizsgáljuk az Y 2 -vel jelzett állapotot. Ebből az állapotból csak az X 2 bemeneti jelkombináció a hálózatot új állapotba vezérli, míg az X 0, X 1 és X 3 nem. Az hogy 115.oldal

116 minden állapothoz csak egyetlen kimeneti kombináció tartozik, utal arra, hogy a megvalósítás Moore modell szerinti. Az SFC egy grafikus programozási nyelv, amely az állapot-gráfhoz hasonlóan írja le a sorrendi folyamatot. Az egyes cégek fejlesztői környezeteiben kissé eltérőek az alkalmazott szimbólumok, a fejlesztési lépések. Mindezek ellenére az alapvető szemlélet azonos. Megjegyzés: Siemens STEP 7 programozó szoftverben az grafikus sorrendi programot GRAPH -nak nevezi, mivel az SFC rövidítést már használja a rendszer függvények (System Function Control) megnevezésére Az SFC programozási nyelv eredete a Telemecanic cég Graf-cet elnevezésű grafikus programfejlesztő nyelve. Az SFC nyelv alkalmazásával minden típusú egy-, és több szekvenciájú vezérlés programja viszonylag könnyen fejleszthető. A következőkben a nyelv elemeit, a programozás lépéseit foglaljuk össze. A fejezet befejezésében példákon mutatjuk be a különböző fejlesztői környezetekben, hogyan kell programot fejleszteni. A 91. ábrán az előzőleg megrajzolt állapotgráfos függvénymegadás SFC nyelvű programja látható. Külön jelöltük az alapvető funkciókat. Inicializáló ütem Elágazás Ütem Akciók Ütemváltás Ütem Ugrás az adott ütemre 91. ábra Ütemváltás feltétele 116.oldal

117 A továbbiakban tekintsük át az egyes elemek funkcióját, valamint a megismert fejlesztői környezetbeli eltérő jelölésüket. Az SFC nyelv elemei 1. Állapototk Az állapotgráfos leírásnál az egyes ütemeket (állapot) körrel jeleztük. A PLC-s programozásnál szoftverenként kissé eltérően egy téglalappal adják meg az egyes állapotokat (92. ábra). Step 7 jelölés (Siemens) Unity Pro XL jelölés (Schneider) Programmer jelölés (Omron) 92. ábra A három fejlesztői környezetben különböző az álllapot azonosítása. A baloldali ábrák szemléltetik, hogyan jelenik meg a beíráskor az ütem jele, amelybe automatikusan beíródik a soronkövetkező ütemszám. Az azonosító megváltoztatható. A Step7-ben az S betű utáni számozás, és az ütem neve változtatható. A Unity és a Programmer jelölésekben csak egy azonosító szerepel, amely felülírható. A kettős határoló vonallal jelölt állapot az inicializáló ütem. Egy gráfban csak egyetlen inicializálás alkalmazható. 2. Akciók Akciónak azt a logika műveletet nevezzük, amit az adott ütemben a vezérlésnek végre kell hajtania. Az akciók lehetnek egy adott változót (bitet) módosító utasítás, vagy logikai függvénnyel megadott művelet. A megadható alapvető bit műveletek jelölése és funkciója a következő: Müvelet jele operandusz Az adott változóra vonatkozó művelet N bit az ütem időtartama alatt aktív S bit az ütembe lépéskor 1-be írja (SET) R bit az ütembe lépéskor 0-ba írja (RESET) D time bit az ütembe lépés után t idő múlva válik altívvá, és az ütem végéig marad aktív (DELAY) DS time bit az ütembe lépés után t idő múlva válik akltívvá (DELAY-SET) 117.oldal

118 L time bit az ütembe lépéskor lesz akív, és t idő múlva válik inaktívvá P 0 bit az ütemből kilépéskor egy ciklusig aktív P 1 bit Az ütembe lépéskor egy ciklusig aktív A felsorolt műveletek mindegyik környezetben alkalmazhatók. Megjegyzés: a SET és a RESET művelet hatása nem szűnik meg az ütem befejezte-kor, ezért egy következő ütemben kell az ellenkező utasítást kiadni. 3. Átmenetek (transition) Az átmenetek az állapotgráfos leírás nyilainak felelnek meg. Jelölésük mindhárom fejlesztői környezetben a 93. ábra szerinti. Csupán a szimbólumhoz rendelt feltételek jelölésében térnek el. 93. ábra 4. Elágazások Amikor egy állapotból több állapotba is lehet átmenet azt az állapotgráfban azzal jelöltük, hogy acsomópontból kiinduló nyilak más-más csomópontban végződtek. Az SFC jelöléseiben az állapot utáni vizszintes vonal, és abból kiinduló átmenetekkel adjuk meg. Kétféle elágazást különböztetünk meg. Az egy-vonalas az un. alternatív elágazás (94. ábra ), ami arra utal, hogy egy adott időpontban csak az egyik átmenet lehetséges. Amennyiben több állapotváltási feltétel is telejesül, akkor a balról első teljesül csak. 94. ábra 118.oldal

119 A két-vonalas jelölést (95. ábra) a párhuzamos elágazás. Ilyen esetben mindegyik elágazásban adott akciók be kell fejeződjenek ( nem feltétlenül egyidejüleg ), és csak azt követően folytatódhatt művelet sor. 95. ábra 5. Ugrások Az ugrás azt mutatja meg, hogy az elötte lévő transitio feltételének teljesűlése után melyik ütem végrehajtása következik. A 96. ábrán mutattuk be, hogy a különböző softverekben ezt hogyan kell jelezni. Az a.ábra Step7, a b. Uniti és a c. a Programer. A Uniti programozásban is lkalmazható a vonalas összekötés. a. b. c. 96. ábra A következőekben tömören ismertetjük azt, hogyan kell az egyes fejlesztői környezetekben megvalósítani az SFC (Graph) nyelvű programozást. 119.oldal

120 Step7 Az adott állapothoz tartozó akciótáblázat egyik sorára kattintva a jobb gombbal jelenik meg a 97.ábrán látható táblázat. Innen választhato ki az új akció. A kiválasztás után kell beírni a megjelenő sorba az utasítást és az operanduszt. 97. ábra Az egyes utasítások kiválasztásában a Help nyújt segítséget. (Az operandusznál a beírás kezdetekor megjelenik a szimbólumtábla). A fejlesztői környezetben a leírtaknál több akció is progrramozható, amelyek szintén a Help-ből ismerhetők meg. Az akcióként funkció (FB) blokkok és egyéb függvények (FC,SFC) is hívhatók. Unity ProXL Az adott ütemhez tartozó akciók megadásához elöszőr az ütemre kettőt kattintva megjelenik a 98. ábra szerinti ablak. A baloldali oszloban választható ki a művelet, mellette az időzítés (ha szükséges) majd a operandusz. A művelet a New action gommbal nyugtázható. Lehetőség van egy már beírt művelet módosítására, vagy törlésére. 98. ábra 120.oldal

121 Amikor logíkai függvényben kívánunk akciót megadni, akkor a Section mezőt kell kiválasztani és a függvénynév megadása után írható (Edit Action Section) a négy kiválasztható nyelv valamelyikén a függvény. (99. ábra) 99. ábra A megfelelő nyelv kiválasztása és az Edit Action section gomb lenyomása után már a nyelv editorában szerkeszthető az új akció függvénye. Programmer 100. ábra 121.oldal

122 101. ábra Példa az SFC nyelvü programozás alkalmazására 102. ábra 122.oldal

123 103. ábra 123.oldal

124 104. ábra 124.oldal

125 105. ábra 125.oldal

126 IV. R É S Z Kombinációs és sorrendi vezérlések programozása 126.oldal

127 7. Vezérlések programozása Minden irányítást működtető program fejlesztése körültekintő előkészítést, és precíz munkát igényel. Az eredményes fejlesztés alapvető feltételei: az irányítandó berendezések, a technológia, az irányító berendezés, a szoftver fejlesztői környezetének alapos ismerete, és fejlesztői gyakorlat. A fejezetben azokkal a módszerekkel foglalkozunk, amelyek segítségével, az előzőekben felsorolt ismeretekre alapozva eredményes lehet a feladat megoldása A tervezés lépései A programfejlesztés jól meghatározott tervezési lépések sorozata. A munka alapvetően két jól elkülöníthető, de mindenképpen egymásra épülő szakaszból áll, mégpedig: a vezérlés logikai tervezése, a működtető szoftver megírása, tesztelése. A második lépés, amennyiben a felhasznált programnyelvet már ismeri, akkor inkább gyakorlati, mint elméleti feladat. A tanulmányok során ezt szolgálják a laboratóriumi gyakorlatok. A jegyzetben a feladatot megvalósító algoritmus működtető lépések megtervezésének lépéseire tesszük a hangsúlyt. A programnyelvek, és fejlesztői környezetek megismerése más tantárgyak (Digitális technika, Programozási ismeretek, Informatika stb.) keretében is oktatásra kerültek. A feladatok két nagy csoportja, úgymint: a kombinációs, illetve a sorrendi vezérlések 127.oldal

128 működtető programjainak fejlesztése. Mindkettőt - példákkal bemutatva tárgyaljuk a jegyzet további fejezeteiben Kombinációs vezérlések Az ipari vezérlések elenyésző hányadát alkotják a tisztán kombinációs feladatok, viszont ahogyan ezt már a korábbi tanulmányaikban is megismerhették, a sorrendi vezérlések is kombinációs részekből épülnek fel. A feladat alapos megismerése, megértése alapján kell a vezérlés programjának tervezéséhez kezdeni A feladat változóinak meghatározása Legelső lépés a szükséges függő (bemeneti)-, független (kimeneti)-, és átmeneti (tárolt) változók meghatározása. Ennek keretében a változók pontos feladatát, dimenzióit célszerű egy táblázatba foglalni. A táblázat tartalmazza a szimbólumokat is, amelyek valamilyen formában utalnak a változók funkciójára is A kiinduló adatok, megadása, felvétele A használt változók kezdőértékeit, valamint a logikai kapcsolatot a függő-, és független változók között egyértelműen kell megállapítani a feladat rendszerint szöveges leírásából. Célszerű blokk-vázlat segítségével szemléletessé tenni a kapcsolatrendszert. Legcélravezetőbb a működési feltételek táblázatban való felírása. A Digitális technikában megismert igazságtáblázat a leggyakrabban használt leírási mód. Ebből kiindulva határozhatók meg a szükséges logikai függvények A legegyszerűbb logikai függvény meghatározása A függvényegyszerűsítési módszereket a korábbi tanulmányokból ismertek. Itt csak emlékeztetőként foglaljuk össze az eljárásokat. Algebrai úton A kanonikus (diszjunktiv, vagy konjunktív) alakokból kiindulva kereshetők meg azok az egyműveletes (logikai szorzat, vagy összeg) egységek, amelyek között az eltérés, hogy az egyikben valamelyik változó egyenes (ponált), a másikban, pedig tagadott (negált) alakban szerepel. Ilyen esetben ez a változó elhagyható. 128.oldal

129 Grafikus módszerekkel Karnaugh táblázatok (minterm Kp, maxterm Ks) felhasználásával szemléletesen mutatják azokat a term - ket, amelyek csak egyetlen változóban térnek el egymástól. Így ezek csoportba foglalásával (lefedésével) határozhatók meg az egyszerűsített egységek a prímimplikánsok. Numerikus módszerrel A logikai függvények legegyszerűbb leírása, amikor a változók érték-kombinációit (mintermek, vagy maxtermek) bináris számoknak tekintjük. Ehhez szükséges, hogy az egyes változókat a 2 hatványaiként súlyozzuk. Az összevonás alapja, hogy azok a kombinációk vonhatók össze, amelyek csak egy változóban térnek el egymástól, és súlyozott összegük különbsége kettő egészszámú hatványa. Az egyszerűsítési módszer Quin,- Mc Closkey eljárásként ismert.. A következő mintafeladaton mutatjuk be a numerikus (Quin,- Mc Closkey) eljárást, és ellenőrizzük a kapott eredményt a Digitális technika tantárgyban már megismert grafikus egyszerűsítéssel Kiinduló adatok Változók és súlyozásuk A 2 0,B 2 1,C 2 2, D 2 3,E 2 4, Megvalósítandó feladat a következő minterm -eket tartalmazza: K 5 = ( 0,4,9,13, 20, 22, 25, 26, 27, 31) X = ( 2,6,16,18, 29, 30) A numerikus eljárás bemutatása Az eljárás lényege, hogy azok a logikai szorzatok (összegek) összevonhatók, amelyek egy változóban különböznek, és indexeik különbsége 2 egész számú hatványával egyezik meg, ekkor az a változó hagyható el (esik ki) amelynek súlya megegyezik a számolt különbséggel. 129.oldal

130 Az egyszerűsítés lépései Az alábbi lépésekre bontva végezhető el az összevonható logikai szorzatok (összegek) megállapítása: A mintermek (maxtermek) csoportokba sorolása az indexben szereplő 1-ek száma szerint. ( 0, 1,.n db 1 lehet egy n változós minterm (maxterm) indexében.). A feladatban szereplő mindegyik indexet a közömbös kombinációkat jelölő X-es tényezőkét is - be kell írni. A szomszédos csoportok egy változóban különbözőek indexeink különbségét kell kiszámítani, s ha ez 2 egész számú hatványa, akkor a két minterm összevonható. Ezt oly módon kell a következő oszlopban jelölni, hogy leírjuk a két indexet, és zárójelbe írjuk a különbséget. A különbségi érték adja meg a kieső változó súlyának a kitevőjét. Az összevonható egységeket jelöljük meg ( ˇ ). További összevonás csak olyan szorzatok (összegek) között lehetséges. Amelyeknél az előző összevonásnál azonos változó esett ki ( a zárójelben lévő szám(ok) azonos(ak), valamint az indexkülönbség 2 egész számú hatványa. Ilyen esetekben az előző pontban leírtak szerint járunk el. A kettes, négyes, nyolcas stb. összevonásokat addig kell folytatni, amíg ez lehetséges. Az összevonható egységek kiválasztása után jelöletlenül maradt egységek, az un. prímimplikáns -ok, vagyis az egyszerűsített függvény elemi szorzatai (összegei). Ezeket más jelöléssel (pl. # ), valamint betűjelzéssel is el szokták látni. A prímimplikáns -okból kell kiválasztani azokat, amelyekkel a kiinduló feladat 1-it megadó indexű mintermek (maxtermek) mindegyike megvalósítható. Az un. prímimplikáns táblázat segít ennek meghatározásánál. A táblázat oszlopaiba írjuk az 1-et megadó indexeket, a sorok pedig a prímimplikáns -ok. Soronként azokat a cellákat jelöljük meg, amelyek oszlop-indexe szerepel a prímimplikáns - ba összevont indexek között. A példában színes számozással különböztettük meg a különböző számú 1-et tartalmazó indexeket. 130.oldal

131 1- A I ek II III feladat Első száma Második összevonás Harmadik összevonás termjei összevonás 0 0 ˇ 2,0 (2) ˇ 6,2,4,0 (4,2) ˇ 22,18,20,16,6,2,4,0 (4,2,16) # e 2 ˇ 4,0 (4) ˇ 6,4,2,0 (2,4) ˇ 22,20,6,4,18,2,16,0 (16,2,4) ˇ 1 4 ˇ 16,0 (16) ˇ 18,2,16,0 (16,2) ˇ 22,18,6,2,20,4,16,0 (16,4,2) ˇ 16 ˇ 6,2 (4) ˇ 18,16,2,0 (2,16) ˇ 6 ˇ 6,4 (2) ˇ 20,4,16,0 (16,4) ˇ 9 ˇ 18,2 (16) ˇ 20,16,4,0 (4,16) ˇ 2 18 ˇ 18,16 (2) ˇ 22,18,6,2 (4,16) ˇ Prímimplikáns -ok: 20 ˇ 20,4 (16) ˇ 22,18,20,16 (4,2) ˇˇ Négyes összevonások 20,16 (4) ˇ 22,20,6,4 (2,16) a ~ 29,13,25,9 (16,4) 13 ˇ 13,9 (4) ˇ 22,20,18,16 (2,4) ˇ b ~ 30,22,26,18 (8,4) 22 ˇ 22,18 (4) ˇ 29,13,25,9 (16,4) # a c ~ 31,27,29,25 (4,2) 3 25 ˇ 22,20 (2) ˇ 30,22,26,18 (8,4) # b d ~ 31,27,30,26 (4,1) 26 ˇ 25,9 (16) ˇ 30,26,22,18 (4,8) ˇ Nyolcas összevonás 27 ˇ 26,18 (8) ˇ 31,27,29,25 (4,2) # c e ~ 22,18,20,16,6,2,4,0 (4,2,16) 4 29 ˇ 27,25 (2) ˇ 31,27,30,26 (4,1) # d 30 ˇ 27,26 (1) ˇ 31,29,27,25 (2,4) ˇ 5 31 ˇ 29,13(16) ˇ 31,30,27,26 (1,4) ˇ 29,25 (4) ˇ 30,22 (8) ˇ 30,26 (4) ˇ 31,27 (4) ˇ 31,29 (2) ˇ 31,30 (1) ˇ Azt, hogy mely prímimplikáns -okkal lehet megvalósítani a függvényt, ahhoz az un. prímimplikáns táblázat nyújt segítséget. A táblázat oszlopaiba kell beírni azon mintermek indexét, amely 1 értéket kell adjon, vagyis mindenképpen meg kell valósítani. A prímimplikáns -ok a sorok. 131.oldal

132 a x x x b x x c x x x d x x x e x x x x Azokba a cellákba kell x-t (vagy más jelölést) írni, amely minterm -eket tartalmazza - lefedi -az adott prímimplikáns. Pl. az a ~ 29,13,25,9 (16,4) a 9,13,25 indexű mintermek 1, míg a 29-es x értékű. A további sorok is hasonlóan töltendők ki. Mivel mindegyik minterm -et le kell fedni, ezért az a, és az e jelű prímimplikáns -ok részei a végső függvénynek, mivel a 9, 13 indexű minterm -ket csak az a, míg a 0, 4, 20 indexűeket pedig csak az e jelű egység tartalmazza. A továbbiak mindegyikét két-két implikáns fedi le, így ezek közül választhatunk. Amennyiben felírjuk azt, hogy melyik minterm -et mely implikáns -ok tartalmazzák, akkor egy logikai függvényt kapun. Az alábbi logikai függvénnyel is meghatározható a megoldása. (Sorba írtuk az egyes minterm -eket lefedő implikáns -ok jeleit.) f = e e a a e ( b + e )( a + c )( b + d )(c + d )( c + d ) ( ) A logikai algebra szabályai alapján elvégezhetjük az összevonást: f = a e( b + d )(c + d ) = a bcd + a d e Tehát két megoldás lehet, mégpedig az abcd, illetve az ade jelű prímimplikáns -ok segítségével. Az utóbbi adja a legegyszerűbb alakot. A megtalált formából az algebrai alakot kell visszaírni oly módon, hogy az aktuális prím bármelyik indexű minterm -ét átírjuk algebrai formává (a kiindulási súlyozást alapul véve), és elhagyjuk azokat a változókat, amelyek súly megegyezik a zárójelben felsorolt számokkal. a ~ 29,13,25,9 (16,4) = a 29 indexű minterm : E DC B A = D B A b ~ 30,22,26,18 (8,4) = a 30 indexű minterm : E DCB A = E B A 132.oldal

133 c ~ 31,27,29,25 (4,2) = a 31 indexű minterm : E DCB A = E D A d ~ 31,27,30,26 (4,1) = a 31 indexű minterm : E DCB A = E D B e ~ 22,18,20,16,6,2,4,0 (4,2,16) = a 22 indexű minterm : A legegyszerűbb megoldás: ade, vagyis: F = D B A + EDB + DA E D CB A = D A Az ismertetett egyszerűsítési eljárás algoritmizálható a legkönnyebben számítógépre Grafikus egyszerűsítés (ellenőrzés!) Az előzőekben bemutatott 5 változós kombinációs feladat egyszerűsítése papíron gyorsabban oldható meg a Karnaugh táblázatok valamelyikének alkalmazásával. Az alábbi ábrán a minterm -es alak (Kp) táblázaton láthatjuk az összevonásokat. D A EBA DC x x x x 1 x x 1 x D B A E DB Az összevont egységek alapján itt is felírhatjuk a legegyszerűbb függvényt: F = D B A + EDB + D A (Az lett volna a meglepő, ha nem ugyanazt kapjuk!!) 133.oldal

134 7.3. Kombinációs vezérlési feladatok programozásának tervezése Ahogyan a bevezetésben már szó volt róla az irányítást megvalósító eszköz lehet általános célú mikrogép, vagy programozható logikai vezérlő (PLC). A követezőekben mindkét eszköz programozását bemutatjuk. A lehetséges programozási algoritmus meghatározása Bemutatjuk a kétféle algoritmus a bit-műveletes, illetve a táblázatos eljárás programjának assembly, és C nyelvű forrás-állományát Bit műveletekkel Általános célú mikrogép alkalmazásakor Azokban a mikrogépekben alkalmazható ez a módszer, amelyekben, a processzor utasításkészletében logikai bitműveletek vannak, és a változóterület - legalább egy része - bitcímezhet. A 8051/31 mikrokontroller család elemei megfelelnek e feltételnek. Az alábbi példák kontroller bázisú mikrogépen futtathatóak. Assembly nyelvű program (komb_m1.a51) A program a logikai függvény értékét a logikai műveletek sorrendjében, a Boole algebra szabályainak megfelelően számítja ki. ;*********************************************** ;* Minta kombinációs feladat programozásához * ;* Bit-műveletek alkalmazása * ;* A megvalósítandó függvény * ;* K = A*D + A*B*D + E*D* B * ;********************************************* * ;xxxxxxx fordítási parancsok xxxxxxx $XREF $DEBUG NAME KOMB_BIT 134.oldal

135 ;###### DEKLARÁCIÓK ####### ;******* Szegmensek deklarálása ****** PROG SEGMENT CODE ;program VALTB SEGMENT DATA BITADDRESSABLE ;bitcímezhető változók STACK SEGMENT DATA ;stack memória ;****** ADAT szegmens bitcímezhető változóknak ******* RSEG VALTB BEM: DS 1 ;bemeneti memória KIM: DS 1 ;kimeneti memória JELZ: DS 1 ;jelző bájt V_A BIT BEM.0 ;az A változó V_B BIT BEM.1 ;a B változó V_C BIT BEM.2 ;a C változó V_D BIT BEM.3 ;a D változó V_E BIT BEM.3 ;az E változó FV_K BIT KIM.7 ;a függvény K kimenete V_M1 BIT JELZ.0 ;átmeneti - merker - tároló ;xxxxxxx Memóriába ágyazott I/O -k xxxxxxx XSEG AT 0C000H NGS: DS 1 ; nyomógomb-sor címe LEDS: DS 1 ; LED -sor címe ;xxxxxxx STACK kijelölés xxxxxxx RSEG STACK ;STACK kezdet DS 10H ;16 bájtos STACK ;###### PROGRAMOK ####### ;xxxxxxx Program szegmens xxxxxxx RSEG PROG START: LJMP INIT ;ugrás az inicializálásra DS 10H ;megszakítás táblázatnak kihagyva INIT: MOV SP,#STACK-1 MOV R1,#BEM ;memória törlés MOV R7,#10H INC R1 DJNZ R7,INIT_1 ;******** Fő program ********* ;xxxxxxx a változók aktuális értékének beolvasása xxxxxxx FOPR: MOV DPTR,#NGS MOVX A,@DPTR CPL A MOV BEM,A ;tárolás a bemeneti memóriába ;xxxxxxx a függvényérték kiszámítása xxxxxxx MOV C,V_A ;az első logikai szorzat kiszámítása, CPL C ANL C,/V_D MOV V_M1,C ;tárolása 135.oldal

136 MOV C,V_A ;a második logikai szorzat kiszámítása, ANL C,/V_B ANL C,V_D ORL C,V_M1 MOV V_M1,C ;a két kiszámított érték tárolása, MOV MOV C,V_B ;a harmadik logikai szorzat kiszámítása, ANL C,V_D ANL C,V_E ORL C,V_M1 ;az eddigi eredménnyel VAGY MOV FV_K,C ;a teljes FÜGGVÉNYÉRTÉK tárolása, ;xxxxxxx a függvényérték kivitele a kimenetre xxxxxxx DPTR,#LEDS MOV A,KIM CPL A JMP FOPR ;új CIKLUS -ra END C nyelvű program /* Kombinációs feladat megoldása bit-műveletekkel*/ /* Deklarációk */ unsigned char bdata be, ki; sbit V_A=be^0; sbit V_B=be^1; sbit V_C=be^2; sbit V_D=be^3; sbit V_E=be^4; sbit FV_K=ki^6; char xdata NGS,LEDS; /* Függvényérték kiszámítása */ void main (void) { do { be = ~NGS; FV_K = (~V_A & ~V_D) ( V_A & ~V_B & V_D ) ( V_B & V_D & V_E ); LEDS = ~FV_K; }while (1); } A C nyelvű forrásprogram lista fájlból kimásolt assembly nyelvű fordítást mutatja az alábbi részlet. Az előző megoldástól csak abban tér el, hogy nem kellett kijelölni az átmeneti tárolót. A compiller helyezte el a B.7 bitre a részeredményt. A jobb oldali lommentek azt mutatják, hogy melyik C nyelvű sorból milyen forráskódot (assembly sorokat) készített. 136.oldal

137 ; FUNCTION main (BEGIN) 0000?C0003: R MOV DPTR,#NGS 0003 E0 MOVX A,@DPTR 0004 F4 CPL A 0005 F500 R MOV be, A 0007 A200 R MOV C,V_A 0009 B3 CPL C 000A B000 R ANL C,/V_D 000C 92F7 MOV B.7,C 000E A200 R MOV C,V_A 0010 B000 R ANL C,/V_B R ANL C,V_D F7 ORL C,B F7 MOV B.7,C 0018 A200 R MOV C,V_D 001A 8200 R ANL C,V_B 001C 8200 R ANL C,V_E 001E 72F7 ORL C,B R MOV FV_K,C 0022 A200 R MOV C,FV_K 0024 B3 CPL C 0025 E4 CLR A RLC A R MOV DPTR,#LEDS 002A F0 002B 80D3 SJMP?C0003 ; FUNCTION main (END) ; SOURCE LINE # 11 ; SOURCE LINE # 12 ; SOURCE LINE # 14 ; SOURCE LINE # 16 ; SOURCE LINE # 18 ; SOURCE LINE # 20 ; SOURCE LINE # 22 ; SOURCE LINE # 23 A lista fájl baloldalán a lefordított forráskódok láthatók. Ahol R betű van abban a sorban a változók, illetve a vezérlésátadások címei még nem ismertek. Ezt majd a szerkesztő (linker) számítja ki a megadott kezdőcím alapján. PLC alkalmazásakor A feladat egyik megoldása a bit-műveletes LÉTRA diagram szerinti programozás. A megoldáshoz a Step7 programozási környezetet alkalmazzuk (106. ábra). Létra hálózat A feladat logikai függvénye adott. A változókat kell deklarálni és a szimbólum táblázatban kell a fizikai címeket és a szimbólumokat összerendelni. 137.oldal

138 106. ábra A feladatot megvalósító program létra-diagramja 107. ábra Táblázatos módszer A logikai függvény megoldásának kétféle táblázatos módszerét ismertetjük a következőkben. Az egyik eljárás szerint a működési (Igazság) táblázat alapján keressük meg a függvény IGAZ értékeit. A másik algoritmus az egyszerűsített függvény táblázatos megoldását végzi. 138.oldal

139 Igazságtáblázat alkalmazása Mindegyik logikai függvényhez felvehető egy táblázat, amely megadja, hogy milyen bemeneti kombinációknál lesz a függvényértéke IGAZ (a már ismert Igazságtáblázat). A program minden ciklusában beolvassa az független változók (bemenetek) aktuális értékét. Ezt követően meg kell vizsgálni, hogy az aktuális érték szerepel-e a táblázat elemei között. Amennyiben igen, akkor az éppen számított függvényérték IGAZ. (Amennyiben a HAMIS értékek kijelölésével lesz rövidebb a táblázatunk, akkor ezt célszerű alkalmazni, természetesen az itt megtalálható értékeknél a függvényérték HAMIS lesz.) A ciklikusan működő program fő feladata tehát: az aktuális változó értékek beolvasása, és tárolása, meg kell állapítania, hogy a tárolt érték eleme-e az adott táblázatnak, a vizsgálat eredménye alapján a függvény- (kimeneti) értéket tárolni, majd a kimenetek aktualizálása. A mintapéldánkban a Változók és súlyozása A 2 0,B 2 1,C 2 2, D 2 3,E 2 4, A K függvény a következő indexű minterm -eknél 1 értékű: 0, 4, 9,13, 20, 22, 25, 26, 27, 31 A program tehát az indexekből álló 10 elemű táblázatban kell keressen. Ekkor nem vesszük figyelembe a közömbös változó kombináció -kat az x-k értékekeit. Több kimenetű kombinációs feladat is megoldható a vázolt felépítésű programmal. Minden kimenethez - függvényértékhez egy-egy táblázatot kell megadni, és a keresést mindegyik táblázatban el kell végezni, és ennek megfelelően megadni az egyes függvényértékeket. Egyszerűsített függvény alapján A kombinációs függvények értékének kiszámításának másik lehetséges megoldása az un. maszkolt - táblázatos feladatmegoldás. 139.oldal

140 A Quin Mc-Closkey egyszerűsítési módszerben kigyűjtöttük a primimplikánsokat, amely tartalmazta az összevonásban szereplő mintermek, vagy maxtermek indexeit. Mellette zárójelben adtuk meg az összevonás eredményeként kiesett változók súlyát. A kapott eredményből megállapítható, hogy az éppen aktuális (beolvasott) kombinációhoz tartozó függvényérték 1, vagy 0. A megoldáshoz írjunk egy olyan táblázatot, amelynek a prímimplikánsok számával azonos sora és két oszlopa van. (Ez tulajdonképpen egy kétdimenziós tömb.) Az első oszlopba írjuk soronként a soron következő prímimplikáns egyik indexét. A második oszlopba kell megadni a maszkot, amely jelzi mely változó(k) esnek ki. A maszk egy bináris szám, amelyben az összevont logikai egységben megmaradt változóknak megfelelő bitek 1, míg a többi 0 értékűek. Az előzőek alapján felépülő táblázatban a következő módon határozhatjuk a függvény értékét. 1. A beolvasott aktuális bemeneti bitkombinációt (B) XOR művelettel összehasonlítjuk az a sorban szereplő indexel (I). 2. Az eredmény és az adott maszk (M) között ÉS műveletet végzünk (ez a maszkolás). 3. Ha a maszkolás eredmény 0, akkor az összevonásban szereplő változók (bitek) értéke egyforma, és ezért a függvény (F) értéke A leírt lépéseket soronként el kell végezni, és ha a feltétel a táblázat egyik sorában sem teljesül, akkor 0 a függvény értéke. Az algoritmus tehát: F=1, ha ( B In ) &M = 0 A leírtakat igazoljuk mintapélda a jelű prímimplikáns -ra (a ~ 29,13,25,9 (16,4)), amely a D B A logikai szorzat. 140.oldal

141 Belép Inicializálás VÁLTOZÓK beolvasása Cikl.-vált.kezd. Ciklus-vég ellenőrzése Vége? INDEX és VÁLTOZÓ hasonlítása Maszkolás Cikl.v. növ. K=0 0? K=1 Kimenetek frissítése minterm m 9 m 13 m 25 m 29 változók E D C B A E D C B A E D C B A E D C B A B (Bem.) I (Index) I B M (Maszk) (I B) & M oldal

142 A változók súlyozásából következik, hogy az összevonás után a C, és az E változókat kell leválasztani maszkolással. Az ötbites maszk bitképe tehát = 0B h = 11d. (Amennyiben nyolcbites a bemenetünk, akkor a felső bitek értékét is le kell maszkolni 0- val). A következő táblázatban az összevonásban szereplő négy index-el is bemutatjuk a műveletet (ötbites változatban). A Bem jelű memória tartalmazza az aktuális bemeneti kombinációt. A feladatot megvalósító assembly és C forrásnyelvű programok az összevont szorzatok maszkolt vizsgálatával határozzák meg a függvényértéket. Először a leírt algoritmus folyamatábráját rajzoljuk meg. Az ellenőrzés ciklikusan ismétlődik, vagy addig, amíg a beolvasott változó értéke része a táblázatnak, és ekkor a K=1, vagy ha minden táblázati elemet összehasonlítva sincs egyezőség. Ekkor K=0. A ciklust elöl-tesztelt megoldással, alakítjuk ki. A táblázatok használatánál előre meg kell adni a táblázat hosszát, vagy a végét kell egy adott értékkel jelezni (terminálni). A példa programokban a hosszt adjuk meg a táblázat első elemeként. Általános célú mikrogép alkalmazásakor Mind assembly, mind, pedig magas szintű C - nyelvekben meg kell írni a kereső, és összehasonlító rutint, függvényt. Majd ezek alkalmazásával készíthető el a teljes feladatot megoldó program. Assembly nyelvű program ;************************************************ ;* Kombinációs feladat megoldása táblázattal * ;* * ;* a táblázat első eleme a táblázat elemeinek száma * ;* a továbbiak adat-páronként - az egyes logikai * ;* szorzatokhoz tartozó maszk és érték * ;* A megvalósítandó függvény * ;* _ * ;* K = A*D + A*B*D + E*D*B * ;* * ;************************************************ NAME ;xxxxxxx fordítási parancsok xxxxxxx KOMB_TABL ;###### DEKLARÁCIÓK ###### ;******* Szegmensek deklarálása ****** PROG SEGMENT CODE ;program VALTB SEGMENT DATA BITADDRESSABLE ;bitcímezhető változók STACK SEGMENT DATA ;stack memória 142.oldal

143 ;****** ADAT szegmens bitcímezhető változóknak ******* RSEG VALTB BEM: DS 1 ;bemeneti memória KIM: DS 1 ;kimeneti memória ERT: DS 1 ;aktuális ÉRTÉK tároló MASZK: DS 1 ;aktuális maszk K BIT KIM.0 ;a K kimenet ;xxxxxxx Memóriába ágyazott I/O-k xxxxxxx XSEG AT 0C000H PORT_IN: DS 1 ; Bemeneti Port PORT_OUT: DS 1 ; Kimeneti Port ;xxxxxxx STACK kijelölés xxxxxxx RSEG STACK STACK kezdet DS 10H ;16 b jtos STACK ;###### PROGRAMOK ####### ;xxxxxxx Program szegmens xxxxxxx RSEG PROG START: LJMP INIT ;ugrás az inicializálásra DS 10H INIT: MOV SP,#STACK-1 MOV R1,#BEM ;memória törlés MOV R7,#10H INIT_1: INC R1 DJNZ R7,INIT_1 FOPR: CIKL_1: MOV KIM,#0 MOV DPTR,#tabl_1 MOVC A,@A+DPTR MOV R5,A ;a táblázat elemeinek a száma ;******** Fő program ********* MOV DPTR,#PORT_IN ;a változók aktuális értékének beovasása MOVX A,@DPTR MOV BEM,A MOV R6,#01H ; ciklusváltozó kezdő értéke MOV A,R6) ; a ciklus befejezésének vizsgálata CLR C SUBB A,R5 ; elől tesztelt ciklus (while) JNC CIKL_VEG ;ciklus vége? MOV A,R6 MOV DPTR,#tabl_1+01H MOVC A,@A+DPTR MOV R4,A ; aktuális INDEX MOV A,R6 MOV DPTR,#tabl_1 MOVC A,@A+DPTR MOV R3,A ;aktuális MASZK 143.oldal

144 CIKL_2: MOV A,BEM XRL A,R4 ; BEM és az INDEX összehasonlítása ANL A,R3 ; az eredmény maszkolása JNZ CIKL_3: SETB K CIKL_3 ; a beolvasott érték szerepel a táblázatban, ; tehát a függvény értéke 1 SJMP CIKL_VEG ; vége a vizsgálatnak CLR K ; a beolvasott érték nem szerepel a ;táblázatban ; tehát a függvény értéke 0 INC INC R6 R6 SJMP CIKL_1 ; a keresés folytatódik CIKL_VEG: MOV DPTR,#PORT_OUT ; az eredmény kivitele MOV A,KIM SJMP FOPR tabl_1: DB 7,9,0,11,9,26,26 END C nyelvű program /* Kombinációs feladat megoldása táblázattal a megoldandó függvény: K= /A/D + A/BD + BDE a táblázat első eleme a táblázat elemeinek száma, a továbbiak adat-páronként - az egyes logikai szorzatokhoz tartozó maszk és érték, */ unsigned char code tabl_1[]= { 0x07,0x9,0x00,0x0b,0x09,0x1a,0x1a }; unsigned char bdata be, ki,j; unsigned char data veg; sbit K=ki^0; char xdata PORT_IN; char xdata PORT_OUT; void main(void) { ki=0; veg = tabl_1[0]; do { be = PORT_IN; K=0; for (j=1;j<veg;j+=2) { if (((be^tabl_1[j]) & tabl_1[j+1]) ==0) {K=1; break; } 144.oldal

145 } } PORT_OUT = ki; }while(1); PLC alkalmazásakor A korszerű PLC -k mindegyikében megtalálható a táblázatokban történő keresés műveletei. Keresés az Igazságtáblázatban A kombinációs feladat táblázatos megoldását a Unity Pro XL környezetben megvalósított példán mutatjuk be a 108. ábrán. a. b ábra 145.oldal

146 Az a. ábrán a szimbólumtábla látható. A 10 elemű INT típusú tömbnek (array) deklarált Igazságtáblázatba írjuk az IGAZ értékekhez tartozó mintermek indexeit. A bemenet tartalmazza az aktuális bemeneti értékeket. A KIM tömb második eleme a vezérelt kimenet. A b. ábrán a program FBD nyelvű változata látható. A FIND_EQ_ARINT függvény a bemenet jelű változó értékét egymás után összehasonlítja az Igazságtáblázat soraival. Amennyiben valamelyik sor tartalmával egyezést talál, akkor annak a sornak a számát adja vissza, egyébként a függvénykimenet értéke -1. A vezérelt kimenet (KIM[1]) akkor kell 1 értékű legyen, ha a keresés egyezést talált. A döntést a GE_INT (nagyobb-egyenlő) függvény oldja meg ha a ref változó értékét 0-ra választjuk. A maszkolásos kereső algoritmus használata A maszkolásos kereső algoritmus legegyszerűbben az ST (Strukturált szöveg) nyelven programozható. A 109. ábrán mutatjuk be a program egy változatát. a. b 109..ábra Az a. ábrán látjuk a táblázat deklarációját. A hatelemű m_tabl tömbbe felváltva írtuk be az index maszk értékeket. A b. ábrán látható ST nyelvű program megértése a C nyelv ismerete alapján is megérthető. Megjegyzés: az ST nyelv és használatának ismertetése a tantárgy második félévében kerül sor. 146.oldal

147 7.4. Sorrendi vezérlési feladatokat megoldó program tervezése A sorrendi feladatok Sorrendi feladat megvalósításához olyan hálózatra, vagy működtető programra van szükségünk, amely a kimenetek aktuális t időpontbeli - kombinációja (Z ki ) az éppen érvényes és a megelőző bemenőjel-kombinációk sorozatától (szekvenciájától) függ. Akkor valósítható meg ilyen feladat, ha a hálózat, vagy a program bemeneteire nem csak az éppen érvényes bemeneti jelek (X be ) csatlakoznak, hanem a kimenetek jelei (Z * ki ) is. Így biztosítható az előző állapotok hatása az új állapotokra. Általános blokkvázlata tehát a 110. ábra szerinti. X be. SH Z *.... Z ki 110. ábra Az SH sorrendi hálózat két-két csoport bemenettel és kimenettel rendelkezik. Az x jelű bemenetekre jutnak a külső logikai változók. A Z * jelű bemenetekre csatoljuk vissza a hálózat Z ki kimeneti változókat. A visszacsatolás következtében a kimeneti változók következő értékét a bemeneti-, és a kimeneti jelek aktuális értékei határozzák meg. Az aktuális időpontot jelöljük t -vel, és a következő általánosan érvényes - időbeli függvénykapcsolatot írhatjuk: ahol f z a logikai kapcsolatrendszer leírása. Z ( t + 1) = f (X( t), Z( t)) Z Megjegyzés: A fejezetben kisbetűvel az egyes változókat, és nagybetűvel az adott változók kombinációját jelöljük. A visszavezetett jeleknél a t idő helyett - a * jelölést használjuk. 147.oldal

148 A sorrendi feladatokat megvalósító hálózatok A sorrendi feladatokat megvalósító logikai hálózatok több változatban is kialakíthatók. A felépítés többek között függ a változók számától, a működés kívánt módjától, valamint egyéb gazdasági szempontoktól. Gondolati kísérlettel belátható, hogy a 110. ábra blokkvázlata szerint megvalósított logikai hálózat csak akkor stabil, ha a kimeneti-, és a bemeneti jelek is állandósultak. Ez csak - egy bemeneti kombinációváltást követően - késleltetve, legkevesebb a hálózat (t H ) késleltetési ideje múlva következhet be. Két stabil állapot között mind X mind, pedig Z is változhat. Amennyiben két stabil állapot közötti tranziens időben (instabil állapotváltozások közben) változik a bemeneti kombináció, akkor újabb tranziens folyamat indul el. Az ilyen felépítésű hálózatot aszinkron sorrendi hálózatnak nevezzük. Ezeknél az állapotváltozást vagy azok sorozatát a bemeneti jelek változása indítja el. Sorrendi hálózat kialakítható olyan működéssel is, amelynél az egymás utáni állapotváltozásokat nem közvetlenül az x bemeneti jelek megváltozása, hanem - egy ezektől független - ütemező jel, az un. órajel, vagy szinkron jel hajtja végre. A két szinkronozó jel közötti időszakban történik a következő állapot előkészítése. A leírt megoldást nevezzük szinkronműködésűnek. A sorrendi hálózatok rendszertechnikai felépítése A hálózatok rendszertechnikailag alapvetően két formában valósíthatók meg. a. A kimeneti jelek közvetlen visszavezetésével (108. ábra), b. Közbenső un. állapottárolók használatával Az első változatot csak akkor alkalmazzuk, ha a kimenetek száma kevesebb, vagy egyenlő a kívánt állapotok számával. A közbenső tárolós megvalósításnál is alkalmazhatunk, a már megismert aszinkron, illetve szinkronműködésű változatot. A mai gyakorlatban szinte kizárólag csak a szinkronhálózatokat alkalmazzák, ezért a továbbiakban csak ezekkel foglalkozunk. A működés alapelve, hogy - a két órajel közötti időben - tárolni kell az aktuális állapotra jellemző információt. A tárolt értékek, az un. állapotjelek (szekunder változók), amelyeket y al jelölünk. Az órajelek mintavételezik az éppen aktuális bemeneti-, és állapotjeleket, és ezektől függően alakul majd ki - a soron következő órajel hatására - az új állapot. Lényeges, 148.oldal

149 hogy az órajel aktív ideje alatt a bemeneti és a szekunder változók értéke állandó kell legyen. Az előbbiek alapján működő hálózatot nevezzük szinkron sorrendi hálózatnak, amely általános felépítésének változatai láthatók a 111. ábrán. a. b. c ábra Az ábrákon látható megoldások mindegyikében közös, hogy a bemeneti kombinációs hálózat (BK) állítja elő az x bemeneti-, és az y állapotváltozókból az állapottárolók (T) új vezérlőjeleit (v j ). Az állapot tárolókat az ütemező órajel (C p ) billenti a v j által meghatározott új állapotba. Az a. ábra szerint a kimeneti kombinációs hálózat (KK) az állapotváltozókból, és a bemeneti jelekből állítja elő a kimenetek jeleit (Z). A megoldás az un. Mealy modell szerinti. A b. ábrán látható változatban a kimenetekre csak az állapotváltozókon keresztül hatnak a bemeneti jelek. A szemléltetett változat az un. Moore modell szerinti felépítésű. Az utóbbi megoldásnál esetleg több tárolóra van szükség, de egyszerűbb a felépítés. A korszerű áramkörök alkalmazásával már elhanyagolandó szempont lett a tárolók száma (különösen a programozott rendszerekben), s ezért a Moore modell szerinti felépítés mind hardverben mind, pedig a szoftveres megoldásban előnyösebb. 149.oldal

150 Azonos funkciójú szinkron sorrendi hálózat alakítható ki a c. ábra szerint is. Nem használunk külön kimeneti kombinációs hálózatot, hanem az y szekunder változókat oly módon állítjuk elő, hogy azok, vagy egy részük egyúttal a hálózat kívánt kimeneti változói is. Mindhárom megoldásban a hálózat állapota, s így a kimenő jelek is az órajel (Cp) ütemezésében váltanak értéket. Tételezzük fel, hogy a vizsgált t időpillanatban - amely a két órajel közötti időpont - a hálózati tranziensek lejátszódtak. A hálózat állapotát a T-ben tárolt - Y i állapotjel kombináció, a kimeneti értékeket a Z i kimeneti jelkombináció írja le. Ugyanebben az előkészítési fázisban az új bemeneti jelkombináció állandósult értéke X i. Ekkor a BK kombinációs hálózat bemenetén az X i és Y i = Z i bemeneti értékek érvényesek, és előállítják a T tárolók v i vezérlőjeleit. A következő billentő órajel fogja - a v i által meghatározott állapotba - billenteni a tárolókat. Ennek eredményeként alakul ki az új kimeneti jelkombináció. Az előzőek alapján felírhatjuk a Z ( t + 1) f (Y (t)) i = Z i Y (t) i = f f (v i ( t)) vi (t) = f V (X i ( t),z ( t)) i függvénykapcsolatokat. Az f z kimeneti függvény az előállítani kívánt (Z i+1 ) kimeneti-, és a tárolók aktuális állapotkombinációi (Y i ) közötti logikai kapcsolatot adja meg. Az f f függvény adja az új állapotkombinációkat (Y i ), az alkalmazott flip-flop típusok, és azok vezérlőjelei (v i ) közötti kapcsolatot. Az f v vezérlőfüggvény a tárolókat vezérlő jelek (v i ), az új állapotot előkészítő bemeneti jelek érvényes kombinációja (X i ) és a hálózat éppen aktuális állapota (Z i ) közötti logikai kapcsolatrendszert írja le. Miután a függvény bemenő-, és kimenő változói egyazon időpillanatra érvényesek, ezért mind a kimenetek-, mind a vezérlő jelek kombinációs hálózattal valósíthatók meg. A szükséges tárolók számát az előállítandó kimeneti kombinációk száma határozza meg. Abban az egyszerű esetben, amelynél nem alkalmazunk kimeneti kombinációs hálózatot (pl. számlálók) a tárolók és a kimenetek száma azonos. Kimeneti kombinációs hálózat 150.oldal

151 alkalmazásakor kevesebb tároló is elégséges, miután ezek csupán a szükséges állapotok számát tárolják, és az állapotjelek száma kisebb, mint az általuk előállítható kombinációk száma. Sorrendi hálózatok logikai leírása A sorrendi logikai feladatokat megvalósító szinkron sorrendi hálózatok tervezéséhez szükségünk van a kívánt működést egyértelműen megadó, az ismert hálózattervezési módszerek alkalmazását elősegítő leírásra. A továbbiakban röviden ismertetünk egy-egy grafikus és táblázatos leírási módszert. A következőkben bemutatott példa nem tényleges feladat megoldása, hanem csak szemléltetése a leírási módoknak Állapotgráf A sorrendi logikai feladatokhoz gyakran használják az állapot-gráfnak nevezett szemléltető leírást. Ennek lényege, hogy a hálózat minden állapotát egy-egy körrel jelöljük. A körökbe az állapot-jelzőt (Yi) írjuk. A körökből nyilak indulnak ki, amelyek vagy egy másik körben, vagy önmagában az induló körben (állapotban) végződnek. Ezek a nyilak az egyes bemeneti kombinációkhoz tartozó állapotváltozások irányát jelzik. Minden körből annyi nyíl indul, amennyi a lehetséges bemeneti kombinációk száma. Az ábra egyszerűsíthető azzal, hogy ha több kombináció eredményez azonos állapotátmenetet, akkor azokat egyazon nyílra írjuk. A nyilakra írjuk rá az állapotváltozást kiváltó bemeneti-, (X i ) és a hozzá tartozó kimeneti kombinációt (Z i ). Amennyiben a kimeneti kombináció egyúttal állapotjellemző is, akkor ezt a körbe írjuk. Azok a nyilak, amelyek a kiinduló körhöz térnek viasza olyan bemeneti kombinációhoz tartoznak, amelyek nem eredményeznek állapotváltozást. Az elmondottakra példa a 112. ábrán látható állapotgráf. Megjegyzés: A More-modell szerinti megvalósításnál a gráf-csomópontokba kell írni a kimeneti kombinációt (Z i ) is. Az állapotgráf -on követhető a hálózat működése, vagy tervezésnél ezzel írhatjuk le a kívánt működést. Az áramköri tervezéshez viszont csak közvetve tudjuk felhasználni. 151.oldal

152 X 0, X 3 X 2 Y 3 Z 3 X 0 X 2 X 2 Y 0 Z 0 X 3 X 1 Y 1 Z 1 X 1,X 2, X 3 X 1 Y 2 Z 2 X 0 X 0, X 1, X ábra A gráfból leolvasható, hogy a szemléltetett szekvenciális hálózatnak négy állapota van. Ezek állapotkombinációi Y 0, Y 1, Y 2, Y 3. A bemeneti kombinációk X 0, X 1, X 2, X 3, és a kimeneti jelkombinációk Z 0, Z 1, Z 2, Z 3 száma is négy. Vizsgáljuk az Y 2 -vel jelzett állapotot. Ebből az állapotból csak az X 2 bemeneti jelkombináció a hálózatot új állapotba vezérli, míg az X 0, X 1 és X 3 nem. Az hogy minden állapothoz csak egyetlen kimeneti kombináció tartozik, utal arra, hogy a megvalósítás Moore modell szerinti Állapottáblázat Egy sorrendi hálózat állapotai, valamint a bemeneti-, és kimeneti változói közötti kapcsolatrendszert táblázattal is megadhatjuk. Az ilyen leírást nevezzük állapottáblázatnak. Áll. Bemeneti kombinációk vált. X 0 X 1 X 2 X 3 * Y 0 * Y 1 * Y 2 * Y 3 Y 0 Z 0 Y 1 Z 0 Y 3 Z 0 Y 0 Z 0 Y 2 Z 1 Y 1 Z 1 Y 1 Z 1 Y 1 Z 1 Y 2 Z 2 Y 2 Z 2 Y 3 Z 2 Y 1 Z 2 Y 0 Z 3 Y 2 Z 3 Y 3 Z 3 Y 3 Z ábra 152.oldal

153 Általánosan: egy hálózat m db állapotot vehet fel, amit a sorok jelölnek. Minden egyes állapotban az n db bemeneti változó 2 n n számú bemeneti-jelkombinációját (X 0... X 2-1 ) kell az oszlopokba írni, amelyek közül éppen az egyik aktuális. Az így kapott táblázat egyes celláiba kell beírnunk azt, hogy az adott állapotban, az oszlopnak megfelelő bemeneti kombináció hatására mi lesz a szekunder-, ill. a kimeneti változók kombinációja (Y i, Z i ). A p Z i -vel a p db kimeneti változó (z z p ) lehetséges kombinációit (Z 0... Z 2-1 ) jelöljük. A szekunder változók az állapot-tárolók kimenetei jelei. Ezek kombinációinak száma egyezzen meg a kívánt állapotok számával, m - el. A 113. ábrán látható táblázatban, pl. az első oszlop mutatja azt, hogy a lehetséges állapotok (az Y i * sorok) az X 0 bemeneti kombináció hatására milyen állapotba mennek át. A táblázat első sorában - az Y 0 * állapotban - az X 1 kombináció (második oszlop) az Y 1 állapotba, az X 2 pedig a hálózatot az Y 3 állapotba viszi át (nyilak jelzik az állapotváltozást). Amennyiben az állapot-, és a szekunder változó indexe azonos, nincs állapotváltozás. A stabil működéshez biztosítani kell, hogy ugyanaz a bemeneti kombináció a következő órajelnél ne eredményezzen további állapotváltozást! A kimeneti-, és vezérlő táblázat Az ismertetett állapottáblázat két részre bontható. Az egyik (114.a.ábra) megadja az állapotok, és a bemeneti kombináció közötti, a másik (b. ábra), pedig az állapotok, és a kimenetek közötti kapcsolatot írja le. Állapotok Y 0 * Y 1 * Y 2 * Y 3 * Bemeneti komb. X 0 X 1 X 2 X 3 Állapotok Y 0 Y 1 Y 3 Y 0 Y 0 * Y 2 Y 1 Y 1 Y 1 Y 1 * Y 2 Y 2 Y 3 Y 1 Y 2 * Y 0 Y 2 Y 3 Y 3 Y 3 * a. b. Bemeneti komb. X 0 X 1 X 2 X 3 Z 0 Z 0 Z 0 Z 0 Z 1 Z 1 Z 1 Z 1 Z 2 Z 2 Z 2 Z 2 Z 3 Z 3 Z 3 Z ábra Következő lépésben a szétbontott táblázatokba kódolt kombinációkat írjuk be. Ekkor megkapjuk a vezérlési-, illetve kimeneti táblázatokat, amelyek már alkalmasak az áramköri, illetve program tervezéséhez. 153.oldal

154 A bemutatott példánál mind az állapotok, mind a bemeneti kombinációk, mind a kimeneti kombinációk száma négy. Következtetést ezekből csak az állapotjelek, illetve tároló számára vonhatunk le. A vezérlőjelek számát a választott flip-flop típus határozza meg (pl. D tárolónál 1, JK típusúnál, pedig 2.). A kimeneteknél az eddigiek alapján csak azt tudhatjuk, hogy az előállítandó kimeneti kombinációk száma négy, de azt, hogy mennyi a tényleges kimenetszám ismeretlen. A bemenetekre vonatkozóan is hasonló a következtetés, ugyanis csak azt tudjuk, hogy négy bemeneti kombináció indít állapotváltozást. A leírtakból egyértelmű, hogy a tényleges sorrendi feladathoz kapcsolódnak a bemutatott leírási módozatok. A szükséges állapottárolók számát (k-t) az m = 2 k összefüggésből határozhatjuk meg, ahol m a szükséges állapotok, k pedig az alkalmazandó tárolók száma. Áttekinthetőbb és jobban kezelhető a 111.c.ábra szerint kialakított sorrendi hálózatok állapottáblázata. Itt az állapottárolók kimenetei egyúttal a hálózat kimenetei is. Ekkor a hálózat egy kombinációs hálózatból és a tárolókból áll. A tárolók számát az előállítani kívánt kimeneti kombinációkból határozhatjuk meg a fenti összefüggés alapján. A kombinációs hálózatra a bemeneti és a visszacsatolt kimeneti változók csatlakoznak. Ez a hálózat előállítja elő a tároló elemeket (flip-flop -kat) vezérlő jeleket. E jelek készítik elő az új állapotot, ami a következő (billentő) órajel hatására áll elő. Az állapottáblázat elemi négyszögeibe tehát csak a vezérlő jel kombinációkat kell írnunk. Tulajdonképpen ez megfelel, az un. vezérlési táblázatnak A tervezés Az előző fejezetben összefoglaltuk a sorrendi feladatokat megoldásának, lehetséges felépítésének, és működésének elveit. Az ilyen berendezések lehetnek: sorrendi hálózatok (csak hardver megoldású), illetve programozható célberendezések (PLC, DDC), általános célú mikrogépek. A fejezetben összefoglaljuk a programozható készülékek működtető szoftverének tervezési lépéseit, megoldásait. 154.oldal

155 A tervezés lépései: 1. a feladat megvalósításához szükséges berendezés n db bemenetének (x 0 x n-1 ), és k db kimenetének (z 0 z k-1 ) meghatározása, az elvárt működés szekvenciák - egyértelmű leírása, 2. a szükséges kimeneti kombinációk (Z 0 Z j-1, ahol j 2 k ) megállapítása, 3. a szükséges állapotok (Y 0 Y m-1, ahol m j ) meghatározása, 4. az állapotváltozást indító bemeneti kombinációk (X 0 X s-1, ahol s 2 n ) kigyűjtése, 5. állapotgráf, állapottáblázat felírása, 6. a megvalósító eszköz PLC, mikrogép stb. kiválasztása, 7. a szoftver-megoldás megtervezése, 8. a programírás, 9. a programtesztelés (szimuláció, valós-idejű), a szükséges módosítások végrehajtása, 10. működési, és üzemeltetési leírások (dokumentáció) elkészítése. A felsorolt lépések feladatait részletesebben is tekintsük át. A feladat rendezett leírása A feladat - az esetek döntő többségében - egy megvalósítandó berendezés elképzelt működését tartalmazó írásos anyagban jelenik meg. Ez a leírás lehet egy megrendelés, egy összetett tervezési feladat része, illetve oktatási feladat. Az anyag rendszerint az igényt részletezi, amelynél a tervezőnek sok rendezési, egyeztetési feladata is van. Természetesen a gyakorlott tervezőnek már kialakult a munkamódszere, de mégis szükséges összefoglalni azt az ajánlást, amely szerint célszerű a következő lépéseket elvégezni. A feladat független változóinak a berendezés bemeneteinek (x 0 x n-1 ) táblázatba foglalása, jellemzőinek (a jeladók jellemzői stb.) előzetes meghatározása. A függő változók a berendezés kimeneteinek (z 0 z k-1 ) táblázatba gyűjtése, a támasztott követelmények (kimeneti szint, teljesítmény stb.) megállapítása. 155.oldal

156 A feladat megvalósításának lehetséges változatainak, működési módjának előzetes megtervezése. Az utolsó pontban kell meghatározni, hogy a feladat szerint a berendezés kimeneti jelváltozás-sorozatai (szekvenciái) milyenek legyenek. Tulajdonképpen ekkor lehet eldönteni, hogy a feladat megoldható-e lefutó típusú (egy szekvenciájú), avagy általános felépítésű (több szekvenciájú) sorrendi vezérlés-el. Ezzel tudjuk meghatározni a rendszertechnika felépítést, és a tervezés választható megoldásait is. A szükséges kimeneti kombinációk A feladathoz tartozó k darab kétállapotú kimenet (z 0 z k-1 ) minden lehetséges kombinációja 2 k. Ennyi változatot csak néhány esetben - például bináris számlálók szükséges megvalósítani. Az ipari feladatokban rendszerint érvényes, hogy csak kevesebb, pl. j db ahol j 2 k - kombinációt szükséges létrehozni. A szükséges kimeneti kombinációk kiválasztása rendszerint hosszadalmas munka, viszont csak ennek ismeretében lehet megállapítani a szükséges állapotok (ütemek) számát. A variációk előzetes megállapítása a tervezés során módosítást igényelhet. Ajánlott módszer, hogy táblázatba foglalva gyűjtjük ki a feltétlenül szükséges, az estlegesen alkalmazható, és az egymásnak ellentmondó (mindenképpen kitiltandó) kimeneti vezérlési állapotokat. A szükséges állapotok száma Először az állapot fogalmát kell egyértelműen meghatároznunk. Jelen gondolatmenetünkben csak azokat az állandósult helyzeteket tekintjük külön állapotnak, amelyek között változást állapotátmenetet csak külső jelváltozás indít el. Tehát a sorrendi feladat lehetséges állapotait a szükséges kimeneti kombinációk határozzák meg. Ha az előző meghatározást vesszük alapul, akkor lehet olyan kimeneti kombináció is, 156.oldal

157 amely nem külső jelváltozásnak az eredménye. Ebből következik, hogy a belső állapotok száma: m j 2 k Az m állapotszámot a vezérlés modulusának is nevezik. Amikor kimeneti jelkombináció-váltást belső jel - pl. idő indítja el, akkor ezt egy adott állapoton belüli kimeneti jelváltásnak tekintjük. A külső, és a belső jelváltás szétválasztása feladatonként változó tervezési munkát eredményez. Általában jobban áttekinthető a feladat megoldása, ha tartjuk magunkat a kiinduló definícióhoz. Elvileg a megvalósításban több állapot is előfordulhat, mint a szükséges kimeneti kombinációk száma, de ebben az esetben, több állapotban is azonosak lesznek a kimeneti jelek, vagyis miért lennének ezek különböző állapotok Állapotváltozást indító bemeneti kombinációk A feladatban szereplő független változók (x 0 x n-1, illetve a megvalósítás bemeneteinek száma adott. A kétértékű bemeneti jelek maximális kombinációinak száma s = 2 n, amely csak nagyon kisszámú bemenetnél egyezik meg az állapotváltozást elindító más megközelítésben hasznos - bemeneti jelváltások (kombinációk) számával. A technikai feladatok nagyobb hányadában érvényes az s < 2 n összefüggés. A meghatározásuk állapotonkénti elemzéssel történhet. Minden állapotban meg kell vizsgálni, hogy a lehetséges kombináció közül melyik indít állapotváltozást. Az így kigyűjtött bemeneti kombinációkat kell csak figyelembe venni a feladat megoldásában. (Amennyiben találunk olyan állapotot, amelyikből egyetlen bemeneti jelváltás sem okoz állapotváltást, akkor ezt az állapotot hibásan állapítottuk meg. Vissza kell térni a pont feladatához. ) Állapot-gráf, állapot-táblázat A tervezés eddigi eredményének ellenőrzését segíti az állapot-gráf, vagy az állapot-táblázat megrajzolása. Ezek segítségével értelmezhetjük a tervezett rész megfelel-e a kiinduló feladatban megfogalmazott működési követelményeknek. Az esetleges eltéréseket ebben a fázisban egyszerűbb korrigálni, mint a végső működés ellenőrzésekor. 157.oldal

158 Az állapot-gráf szemléletesen mutatja az állapotokat (Y i csomópontokat), az ezekhez rendelt kimeneti kombinációkat (Z p ). Az állapotváltozások irányát jelző nyilak segítségével leellenőrizhetjük, hogy megfelelően állapítottuk-e meg azokat, és az indító bemeneti kombinációkat (X r ). Az ellenőrzésnél az állapottáblázat használata kevésbé szemléletes. A táblázat viszont a hardvertervezésnél előnyösebb, mivel a bemeneti, illetve a kimeneti vezérlő függvények könnyebben meghatározhatók. Az alkalmazott berendezés kiválasztása A feladat általában előírja azt, hogy a vezérléshez milyen programozható eszközt PLC -t, DDC -t, vagy általános célú mikrogépet kell alkalmazni. Ilyen esetben a berendezés végleges konfigurációját lehet meghatározni a tervezés eddigi eredménye alapján. Esetenként az egyes illesztők választása bizonyos módosítást is igényelhet addigi munkánkban. Az általános célú mikrogép alkalmazásánál esetlegesen új illesztő-egységek tervezése, megépítése, vagy beszerzése válik szükségessé. Összefoglalóan tehát ekkor fejeződik be a tervezés azon része, amelyre alapozva kezdhető el az irányító-szoftver fejlesztése. Megjegyzés: amennyiben a feladatot megvalósító berendezés un. sorrendi hálózat (csak hardver megoldású), akkor is el kell végezni az eddigi tervezési munkákat. Szoftver megoldások A fejezetben a különböző programozható eszközökben alkalmazható programszerkezeteket és programozási megoldásokkal foglalkozunk. Az előző fejezetekben leírtak alapján meghatározhatjuk, hogy mit is kell a programnak végrehajtania. A feladatok alapján megtervezhetjük a program szerkezetét. Minden irányítási feladatot ciklikus programszerkezettel kell megtervezni! Törekedni kell a lehető legrövidebb ciklusidőre! a) Egy cikluson belüli feladatok: az aktuális bemeneti értékek beolvasása, változások meghatározása, tárolása, az végrehajtandó ütem kiválasztása, az aktuális ütembeli feladatok (pl. belső időzítés stb.) megoldása, 158.oldal

159 az érvényes ütem kimeneteinek memórián belüli frissítése, a beolvasott bemeneti értékek alapján meg kell állapítani, hogy a következő ciklusban kell-e állapotot változtatni, ha igen, akkor az állapotjelzőt változtatása, az ütemektől független feladatok (pl. vészhelyzet figyelés stb.) megoldása, a fizikai kimenetek frissítése. A felsorolt feladatok közül a harmadik, és negyedik pont az ütemekben megoldandó feladatokat tartalmazza, tehát ütemenként más és más. A további pontokban megfogalmazott feladatokat minden ciklusban végre kell hajtani. b) A program felépítése: A sorrendi feladatokat vezérlő program általános felépítését szemlélteti a 115. ábra szerinti folyamatábra. A ciklikus főprogramba kerülnek mindazok a feladatok, amelyeket ütemtől függetlenek. Az egyes ütemek alprogram -ként (szubrutin, függvény, modul) valósíthatók meg. Mivel minden ütemben azonos feladatokat (az ütemhez tartozó feladatok megoldása, kimenetfrissítés, állapotváltás feltételeinek megvizsgálása) kell végrehajtani különböző paraméterek alapján, ezért a ütemekhez tartozó programok szerkezete egyforma. Start Inicializálás Belépés 1. ütem Bemenetek beolvasása, változás vizsgálata, tárolás Ütemválaszt ás 2. ütem n. ütem Ütemen belüli feladatok megoldása Kimeneti memória frissítése Bemeneti kombinációk vizsgálata Ütemtől független feladatok Új ütem? i Ütemváltozó módosítása n Kimenetek frissítése Kilépés Főprogram i. ütem programja 115. ábra 159.oldal

160 A különböző programozható berendezések mindegyikében a fenti szerkezetű programokkal valósíthatóak meg a sorrendi vezérlések. Az ismertetett szerkezet Moore -modell szerinti közelítésnek fele meg. A működés szinkron, ahol a szinkronozás egysége a főprogram egy ciklusa. A következőkben példák segítségével mutatjuk be a különböző programozási megoldásokat Általános célú mikrogépek programozása A különböző általános célú mikrogépek, PC-k, mikrokontroller bázisú berendezések alkalmazásával is megoldhatók a különböző irányítási feladatok. Az ilyen mikrogépeknél a feladatokat megoldó programok fejlesztése általános célú szoftverekkel, úgymint Assembly (gépközeli, vagy utasítás orientált), vagy magas szintű (művelet központú, pl. C) nyelven történhet. A példákban bemutatott programfejlesztések a 8051/31 mikrokontroller család CPU -val kialakított mikrogépekre íródtak. A fejlesztés a Keil-Elektronic szoftvercsomaggal történt, mind az assembly mind, pedig C nyelven A sorrendi vezérlések programozása adatbázis alapján A kombinációs feladatok programozásánál már megismerkedtünk a táblázatokra ( fejezet) alapozott feladatmegoldásokkal. Az ott használt táblázatok is tulajdonképpen a feladatot leíró adatokat tartalmazták, tehát egy adatbázis típus. Ebben a fejezetben a sorrendi vezérlések olyan programozási módszerével foglalkozunk, amelynél minden ütemben az elvégzendő műveleteket egy adatsorozat, rekord írja le. Az adatsorozatot, annak tényleges tartalmától független megoldó program (interpreter) értelmezi és vezérli a deklarált változókat. Az akció, illetve tranzició változatainak részletesebb tárgyalása elött ismerkedjünk meg a vezérlés struktúráját szemléltető ábrázolás egy másik változatával. Az eddigiekben az állapotgráf mutatta a felépítést. Az új leírás is gráf ( a PLC nyelveknél használt SFC). A leírási módot a 116. ábrán szemléltetjük. Az egyes állapotokat négyszöggel jelöljük, és ezekbe írjuk be az állapot azonosító szimbólumát, valamint az ütemen belüli akciókat. Az akciót egy parancs (pl. S, D stb.) és azt követő operandusz írja le. Az operandusz lehet egy változó, vagy a változó értékét 160.oldal

161 meghatározó logikai függvény. Az ütemek közül egy, és csak egy lehet a kezdő, inicializáló ütem, amit kettősvonallal jelölünk. Az ütemekből csak a tényleges állapotváltozást indító tarnziciókat rajzoljuk meg az ütemeket összekötő vonalakra rajzolt vastagított gát -tal. Mellé írjuk az ütemváltást engedélyező feltételt, amely lehet egy változó, vagy logikai függvény. Amikor egy ütemből több ütembe történő átmenet (természetesen nem egyidejűleg) lehetséges, azt egy vízszintes vonallal jelöljük, és ebből indulnak a váltási feltételeket leíró vonalak-gátak. Az ilyen váltást nevezzük alternatív elágazásnak. UT0 R IVt1, IVt2, ST Be UTA R IVt1, IVt2, ST A1 Ki A1&A2 UT1 N IVt1, D_3s ST UT10 UT1 N IVt2, D_3s ST F1&A2 Ki F1&A2 F2&A1 Ki F2&A1 UTA UT0 UT2 UT1 UT0 UTA 116. ábra Az állapotgráfnál minden átmenetet a megfelelő irányú nyíl mutatta, ami eléggé áttekinthetetlenné tette az ábrát. Az új jelölésnél útjelző tábla ( ) mutatja a váltás kezdetét és a beírt szimbólum, pedig a célt. A célnál csak egy nyíl jelzi, hogy ide valahonnan állapotváltás indult. A következőben röviden tekintsük át a szükséges vezérlések típusait, a vezérlést előíró parancsokat és operandusokat 161.oldal

162 Akció. A kimenetek ütemekben történő vezérlését korábban kimeneti kombinációnak (Z x ) neveztük. A továbbiakban akciókat jelölünk, amelyek vagy csak egy-egy függő változó értékét állítják be, vagy azok meghatározását végző logikai függvény hívását jelenti. Az egyes függő változók, kimeneti bitek állítása egy adott ütemben, lehet: 1. statikus, amikor a változó az ütem teljes időtartama alatt aktív (Set), vagy inaktív (Reset), 2. bekapcsolás késleltetésű, a változó az ütembe lépés után t k idő múlva lesz aktív (Delay), 3. kikapcsolás késleltetésű, a változó az ütembe lépéskor azonnal aktív, majd t k idővel késleltetve lesz inaktív (Limit). Az akció másik csoportjában a változó értékét egy meghívott logikai függvény határozza meg (Fv). Rendhagyó akciók Egyedi esetnek kell tekintenünk az olyan ütemet, amelyik az akció adott idő, amely meghatározza az ütem időtartamát (StD). Ezen belül természetesen értelmezhetünk egyéb akciókat. További speciális akció a rekord végét jelző parancs (Vr). Állapotváltozás (tranzitio) vezérlése Az állapotváltozást engedélyezheti egy független változó meghatározott értéke, vagy a független változók egy csoportjára vonatkozó logikai függvény eredményétől A sorrendi műveletek utasításai Az előzőekben összesen hét műveletet különbözettünk meg. Ezek mindegyikéhez rendelhetünk egy-egy parancs bájtot, amelynek felső három bitje a művelet parancs-kódja. A többi bit, illetve további bájtokban adhatók meg a szükséges műveleti paraméterek, operanduszok. A következő táblázatban foglaltuk össze az utasításokat. 162.oldal

163 Utasítás szimb. 1. bájt (kód) 2. bájt 3. bájt 4. bájt Funkció S_R 001y mmmm bitkép L [bitkép H] - Set, Reset akció D 0100 kkkk S ttt tttt mmmm ybbb - Bekapcsolás késleltető akció L 0110 kkkk S ttt tttt mmmm ybbb - Kikapcsolás késleltető akció Fv 1000 vvvv Függvényt hívó akció StD 1010 kkkk S ttt tttt - - Késleltetett akció Tr 1100 mmmy index maszk uuuu Állapotváltás feltétele TD 1110 kkkk S ttt tttt uuuu - Késleltetett ütemváltás feltétele Vr Rekord vége A táblázat jelölései: mmmm kkkk vvvv uuuu S ttt tttt y bbb a belső műveleti adatmemória (OPMEM) relatív címe a késleltető memória relatív címe függvény vektor következő ütem a késleltetés státusza (S) és hét bites modulusa (ttt tttt) bájt-szám jelölő y=0 egy bájt, y=1 két bájt bit sorszám az index és maszk a kombinációs feladatmegoldó - maszkolt táblázatos - algoritmusánál használt fogalmak (139. oldal). A belső memóriát 16 bájtos funkcionális szegmensekre bontjuk. A szegmensek: OPMEM TM műveleti adatmemória, amelyen belül 0 a bemeneti memória H bájt, míg 1 az L bájt relatív címe (Idekerül ciklusonként beolvasásra a bemenet Port). A szegmens 2. és 3. bájtja a kimeneti memória (H-L) relatív címe. (Innen frissíti ciklusonként a kimeneti Port) A további címek általános tárolóként alkalmazhatók. időzítések bájtjai. 163.oldal

164 Példák: 1. Egy bájtos kimeneti Port vezérlése adott bitkombinációval. A Set_Reset utasításhoz csak az L bájtra kell írni a bitkombinációt (BKo). Az utasítás kétbájtos: BKo S_R y mmmm bitkomb. 2. Kétbájtos Port H bájtjánál az 5. bit bekapcsolásának késleltetése t k másodperccel. Az aktuális időt a TM szegmens 3. memóriahelye tárolja Az utasítás hárombájtos ttt tttt D kkkk modulus mmmm y bbb Következő példaként egy sorrendi vezérlést inicializáló-, (UT0) és alapütemének (UTA) működését leíró rekordjait mutatjuk meg. A példa megértéséhez feltétlenül ismerni kell a változókat. És azok memóriában elfoglalt helyét. Az operatív memória (OPMEM) kezdő címe csak a konkrét programnál szükséges, mivel a felvett utasításainkban relatív címekkel dolgozunk. OPMEM SEGMENT DATA BITADDRESSABLE ; operatív változók a BIT címezhető területen ; xxxxxx Operatív memória xxxxxx RSEG OPMEM BEMH: DS 1 ; Bemeneti memória H bájt BEML: DS 1 ; Bemeneti memória L bájt KIMH: DS 1 ; Kimeneti memória H bájt KIML: DS 1 ; Kimeneti memória L bájt DS 12 ;Általános felhasználású memória A1 BIT BEML.0 ; Független változók A2 BIT BEML.2 Ki BIT BEML.6 Be BIT BEML.7 Inicializáló ütemben végrehajtandó akció az összes kimeneti változó törlése. A műveletet a statikus (S_R) utasítás vezérli, melynél az OPMEM 03 relatív címére (KIML) ír 0-t. 164.oldal

165 Az ütemváltás tranzició csak a Be jelű nyomógomb BEML 8. bitje - aktiválásakor történik, és ekkor a vezérlés az 1 ütemre (UTA) kerül. A leírtaknak megfelelő rekord az alábbi: UT0: DB 0x13,00,00, 0xC0,0x80,0x80,0x01, 7 (akció) (tranzició) (rekord vége) Alap ütemben végrehajtandó akció megegyezik az inicializáló ütemével (az összes kimeneti változó törlése). A műveletet a statikus (S_R) utasítás vezérli, melynél az OPMEM 03 relatív címére (KIML) ír 0-t. Az ütemváltás tranzició több irányba is történhet: ha A1=0 akkor váltás a 2 ütembe (UT1); ha A1=1 és A2 =0 akkor váltás a 3 ütembe (UT2); ha Ki=1 akkor váltás a 0 ütembe (UT0) A leírtaknak megfelelő rekord az alábbi: UTA: DB 0x13,00,00, 0xC0,0x01,0x01,0x02, 0xC0,0x03,0x05,0x03, (akció) (tranzició1) (tranzició2) 0xC0,0x40,0x40, 0x00, 7 (tranzició3) (rekord vége) Megjegyzés: a tranzició 2. és 3. bájtjai az adott kombinációnál azindex és maszk A példaként bemutatott két ütemben mind az akció mind, pedig a váltások statikusak. A vezérlésekben rendszerint jelkésleltetéseket, és többféle időzítést is meg kell valósítani. Mielőtt ezek megoldását részleteznénk, tekintsünk át néhány alapfogalmat. Időzítés Minden időzítő egy állandó frekvenciájú impulzus sorozat - az un. időalap fel-, vagy lefutó változásának számlálásával történik. Az aktuális számtartalmat egy memória rekeszben tároljuk. A késleltetés időtartamát az időalap periódusidejének és az un. modulusnak a szorzata adja. Amikor a számlált érték megegyezik a megadott modulussal, vagyis letelt a kívánt idő, akkor egy jelzőt, a státusz-bitet kell 1-be állítani. Egy felhasználói programon belül általában több időzítést is el kell végezni. Ehhez annyi tároló rekeszre van szükség, ahány egymástól független időzítést kívánunk megoldani. Ugyanakkor egyetlen időalap előállítása is elégséges. 165.oldal

166 Időalap A késleltetésekhez az időalap előállítása két részletben valósítható meg. Egyrészt valamelyik programozható időzítő/számláló egység pl T0 mint impulzusgenerátor (2 üzemmód) megszakítás kérése adja a stabil időzítési alapot. Az így előállítható jel frekvenciája az esetek többségében még túl magas. Másik feladat tehát a frekvencia leosztása. A frekvenciaosztást a megszakításnál hívott rutin végzi a hívások számlálásával. A kívánt számú megszakítás bekövetkeztét kell, hogy jelezze, az un. időalap-bit (IB). Másik kérdés, hogy mi határozza meg az alkalmazható leggyorsabb frekvenciát, vagyis az időzítés felbontásának mértékét. Alapkövetelmény, hogy a felhasználói program egy ciklusa alatt legfeljebb egyetlen egyszer legyen IB. A következő assembly nyelvű programrész a főprogramnak azt a részét szemlélteti, amelyben a be-, és a kimenetek frissítése, valamint az ütemtároló (UT_TAR) aktuális értékétől függően az ütemhez tartozó táblázatcím kiválasztása, és a DPTR -be írása történik. Az aktuális táblázat értelmezését, és ez alapján, az ütemen belüli vezérléseket végzi a RUT_T kezdőcímű szubrutin. (A részlet nem tartalmazza a különböző szegmens, illetve változó deklarálásokat.) FOPR: CALL BEOLV ;Bemenetek frissítése MOV DPTR,#UT_VAL ;Ütemválasztás kezdő címe MOV A,UT_TAR MOV B,#9 MUL AB ;Az ugrótábla aktuális címének meghatározása UT_VAL: ;Ütemválasztás kezdete MOV DPTR,#TABL_0 CALL RUT_T ; A 0. ütem rutinjának hívása LJMP KOZOS MOV DPTR,#TABL_1 CALL RUT_T ; A 1. ütem rutinjának hívása LJMP KOZOS MOV DPTR,#TABL_2 CALL RUT_T ; A 2. ütem rutinjának hívása LJMP KOZOS MOV DPTR,#TABL_3 CALL RUT_T ; A 3. ütem rutinjának hívása KOZOS: CALL RUT_K ; Minden ciklusban végrehajtandó feladatok 166.oldal

167 CALL KIIR ; Kimenetek frissítése JMP FOPR TABL_0: DB 0, 0, 80H, 80H, 01, 0, 0 TABL_1: DB 0, 0, 0CH,01, 02, 01, 01, 05, 03, 01, 0 TABL_2: DB 2, 6, 07, 06, 01, 0, 03, 06, 03, 01, 0 TABL_3: DB 64, 68, 0CH, 09, 01, 0, 0CH, 09, 02, 01, 0 Mivel az egyes ütemekhez tartozó táblázatok is ebben a modulban vannak, ezért kell a rutinok hívása előtt megadni a DPTR pointer regiszterben a kezdő címeket. Mivel mindegyik ütemben ugyanaz a végrehajtó rutin, és csak a táblázatok különböznek, ezért egyszerűbb megoldást ad az a módszer, amelynél csak a megfelelő címet választjuk ki egy táblázatból, és csak egyszer kell hívni a RUT_T értelmező szubrutint. Ezt a megoldást láthatjuk az alábbi programrészletben. FOPR: CALL BEOLV ; Bemenetek frissítése MOV MOV RL A PUSH DPTR,#UGR_T ;Ütem ugrótábla bázis címe A,UT_TAR ;Az ugrótábla aktuális címének meghatározása ACC MOVC A,@A+DPTR ; Az aktuális táblázatcím kiolvasása és tárolása MOV P_H,A POP ACC INC A MOVC A,@A+DPTR MOV P_L,A MOV DPH,P_H MOV DPL,P_L ; Az aktuális ütem táblázatának címe CALL RUT_T ; A kiválasztott ütem táblázatának megoldása KOZOS: CALL RUT_K ; Minden ciklusban végrehajtandó feladatok CALL KIIR ; Kimenetek frissítése JMP FOPR TABL_0: DB 0, 0, 80H, 80H, 01, 0, 0 TABL_1: DB 0, 0, 0CH,01, 02, 01, 01, 05, 03, 01, 0 TABL_2: DB 2, 6, 07, 06, 01, 0, 03, 06, 03, 01, 0 TABL_3: DB 64, 68, 0CH, 09, 01, 0, 0CH, 09, 02, 01, 0 UGR_T: DW TABL_0, TABL_1, TABL_2, TABL_3 Mindkét programmegoldásnál az ütemekhez tartozó táblázatok (TABL_0. TABL_3) azonosak. Az UGR_T elnevezésű táblázat szavas felépítésű, és elemei tulajdonképpen az egyes ütemtáblázatok kezdő címe (a címke címet helyettesít!!!). Az ütemváltozó értékétől 167.oldal

168 függően olvassuk ki a táblázat szükséges elemét, vagyis azt a táblázat-címet, amely elemeit kell felhasználni a következő ütemben PLC programozása A programozható logikai vezérlők (PLC -k) tulajdonképpen célorientált mikrogépek. Mind hardver felépítésük mind, pedig programozásuk az automatizálási feladatok céljait szolgálják. A különböző PLC gyártók eltérő programozói szoftvereket bocsátanak a felhasználók rendelkezésére. Ezek többnyire a programozói felületben, a címzési formákban, az alkalmazható utasításokban térnek el. A PLC -k megjelenésétől eltelt cca. 35 évben csak utolsó tíz évben történt jelentősebb változás, amelyet a PC-k operációs (multitask) rendszereinek fejődése hozott magával. A leggyakrabban használt PLC nyelvek : Létra-diagram (áramút terv LD), Utasítás-listás (assembly jelleg IL), Szimbolikus (logikai-aritmetikai funkció-blokkokkal FDB), Sorrendi vezérlés (SFC), Strukturált szöveg (ST) A programírás Az alkalmazáshoz kiválasztott berendezés eleve meghatározza a program forrásnyelvi megírásához használható editort. Az általános célú mikrogépek -nél a tiszta szövegfájlt előállító szövegszerkesztők használhatók. (Egyes integrált fejlesztői környezetek saját editorral rendelkeznek.) A különböző PLC alkalmazásoknál a gyártok saját fejlesztésű programozói szoftverét kell megtanulni, és alkalmazni. Ezek már egyszerűbb, vagy összetettebb integrált programfejlesztői környezetek, amelyekben rendszerint a fejlesztett program valósidejű futtatása (On-line), tesztelése is elvégezhető. 168.oldal

169 Jelen oktatási segédanyagban nem részletezzük a programtesztelés, valamint a dokumentálás feladatait. Mindezekkel a mérések során a gyakorlatban szerezhetnek ismereteket. Így fejleszthetik készség szintjéig a megismert eljárások alkalmazását Példák sorrendi vezérlések programozására A fejezetben a sorrendi feladatok két nagy csoportjából, úgymint a lefutó (egy szekvenciájú), valamint az általános (több szekvenciájú) megoldásokra térünk ki. Mind a két csoportban egyazon feladatokat megoldó assembly, C nyelvű, programjait mutatjuk be. A sorrendi vezérlések PLC k alkalmazásánál a programozáshoz az SFC illetve az ST nyelvek a legalkalmasabbak. Miután e nyelvek ismertetése a második félévben kerül sorra ezért a példáknál, nem írunk PLC programot Forgalomirányító lámpák vezérlése A feladat a 117. ábrán látható egyszerű útkereszteződés forgalmát irányító lámpák vezérlését végző B irány A irány 117. ábra mikrokontrolleres vezérlő, illetve PLC programjának elkészítése. 169.oldal

170 A feladat leírása Szöveges feladatmegadás: Az A, illetve B irányokban közlekedő járművek közlekedését kell összehangolnia a forgalomirányításnak. A működés fázisai: 1. alapállapotban egyik lámpa sem világít. 2. a forgalmat a B irányba engedélyező, az A irányba tiltó jelzés, jelzés, 3. a forgalmat a B irányba tiltást előjelző, az A irányba engedélyezést előjelző 4. a forgalmat a B irányba tiltó, az A irányba engedélyező jelzés, jelzés. 5. a forgalmat a B irányba engedélyezést előkészítő, az A irányba tiltást előkészítő A továbbiakban ezek a fázisok ciklikusan ismétlődnek. A működtetés kézi vezérléssel történjen. A két kezelőszerv közül az egyik kétállású kapcsoló x 0, amelyik egyik állapotában engedélyezi, a másikban, pedig tiltja a működést. A másik x 1 nyomógomb, amelyik lenyomása (pozitív él) a fázisok (állapotok) váltását vezérli. Vezérelt kimenetek: az egyes irányokhoz tartozó hat lámpa, (z 0 z 6 ) (a lámpák számába nem számít bele az azonos funkció ismétlése!) kimenet Jelölése Funkció z 0 Z_A Zöld az A irányba engedélyez z 1 S_A Sárga az A irányba váltást előjelző z 2 P_A Piros az A irányba tilt z 3 Z_B Zöld az B irányba engedélyez z 4 S_B Sárga az B irányba váltást előjelző z 5 P_B Piros az B irányba tilt a szükséges kimeneti kombinációk (Z 0 Z j, ahol j 2 k+1 ) megállapítása A hat kétállapotú lámpa (sötét - világít) lehetséges kombinációinak száma 64. Nem írjuk fel a teljes kombinációs táblázatot, csupán a szükséges sorokat. 170.oldal

171 Sorszám (z 5 ) (z 4 ) (z 3 ) (z 2 ) (z 1 ) (z 0 ) P_B S_B Z_B P_A S_A Z_A Jelölés Z Z Z Z Z 4 A kimeneti kombinációk táblázatában kijelölt sorok megfelelnek a működési fázisoknak. a különböző állapotok ( Y 0 Y m-1, ahol m j ) száma megegyezik a szükséges kimeneti kombinációk számával, tehát 5. Ezek: Y 0, Y 1, Y 2, Y 3, Y 4. Az Y i állapotjelzőknél és a kimeneti kombinációknál azonos index-el jelöltük az összetartozó értékeket. Az állapotváltozást indító bemeneti kombinációk (X 0 X s, ahol s 2 n+1 ) kigyűjtése. A bemeneti kombinációs táblázat: Bemeneti kombinációk Be/Ki x 0 Léptet x 1 Vezérlési feladat Hasznos kombinációk X Kikapcsolás X 0 X Kikapcsolás - X Bekapcsolás X 1 X Ütemváltás X 2 Az első két kombináció - X 0 vagy X 1 - az Y 0 állapotba vezérli a rendszert, tehát összevonható. Állapottáblázat, Bemeneti kombinációk Állapotok X 0 X 2 X 3 Y 0 * Y 0, Z 0 Y 0, Z 0 Y 1, Z 1 Y 1 * Y 0, Z 0 Y 1, Z 1 Y 2, Z 2 Y 2 * Y 0, Z 0 Y 2, Z 2 Y 3, Z 3 Y 3 * Y 0, Z 0 Y 3, Z 3 Y 4, Z 4 Y 4 * Y 0, Z 0 Y 4, Z 4 Y 1, Z oldal

172 X 0,X 2 Y 0,Z 0 X 2 X 0 X 3 X 0 X 2 Y 1,Z 1 X 3 Y 2,Z 2 X 3 X 0 X 0 X 3 X 2 Y 4,Z 4 X 3 Y 3,Z 3 X ábra Az állapottáblázat, illetve az állapotgráf is szemlélteti, hogy a folyamatos forgalomirányítás (Y 1, Y 2, Y 3, Y 4 ütemek) egy-szekvenciájú ciklikus (lefutó) vezérlés. Az Y 0 alaphelyzetből az indítás, vagy abba való visszatérés a leállítás jelent eltérő állapotváltozást. A folytonos vezérlés minden ütemében csak egy-egy kimeneti kombinációt kell érvényesíteni. Az ilyen típusú vezérlésnél legegyszerűbb megoldást az szolgáltatja, ha a kimenti kombinációk sorozatát egy táblázatba tömbbe foglaljuk, az állapotjelző mutat mindig a táblázat éppen aktuális elemére (0, 1, 2, 3, 4 számsor szerint), az állapotváltozást indító bemeneti kombináció az állapotjelzőbe a soron következő számot állítja be, a folytonos számsor az ismétlődő szekvencia. A következőkben a leírtak szerint működő programokat mutatjuk be különböző típusú vezérlők alkalmazására. 172.oldal

173 Az útkereszteződés vezérlése általános célú mikrogéppel A feladatot megvalósító mikrogép a mérési gyakorlatokon használt berendezés. A be-, illetve kimeneteknek használt diszkrét illesztők - nyomógombsor, LED sor memóriába Utm = 0 Start Inicializálás Bemenet frissítés Be / Ki kapcsolás Be? Léptet? Utm (Ütemváltozó)+1 Utm>m Utm = 1 ágyazott megoldásúak. A feladatot mind assembly mind, pedig C nyelvű programozással oldjuk meg. A feladat megoldásának egyik változata, ha a kimeneti kombinációkat egy táblázatba (tömbbe) foglaljuk, és ebből olvassuk ki az éppen aktuális értéket. Egy változó, továbbiakban ütemszámláló tárolja az ütem sorszámát, és mutatóként (pointer) kiválasztja a táblázatból az éppen aktuális ütem kimeneti kombinációját. Az ütemszámláló tartalma csak akkor változik, ha a bemenetekre az X 2 kombináció jut, amely 1-el növeli (incrementálja) a mutató értékét. A leírt működés folyamatábrája látható a 119. ábrán. Táblázatból kiolvasás Kimenet frissítés 119. ábra 173.oldal

174 Assembly nyelvű forrásprogram. ;*********************************************** ;* Útkereszteződés vezérlése * ;* Táblázatos feladatmegoldás * ;********************************************* * ;################### DEKLARÁCIÓK ################################### ;******* Szegmensek deklarálása ****** PROG SEGMENT CODE ;program VALTB SEGMENT DATA BITADDRESSABLE ;bit-címezhető változók STACK SEGMENT DATA ;stack memória ;****** ADAT szegmens bit-címezhető változóknak ******* RSEG VALTB BEM: DS 1 ;bemeneti memória BEMP: DS 1 ;pozitív él tárolása UTM: DS 1 ;ütemtároló KIM: DS 1 ;kimeneti memória TEMP: DS 1 ;átmeneti bájt ENG BIT TEMP.0 ; bekapcsolást jelző bit BE BIT BEM.0 ; be gomb KI BIT BEM.1 ; ki gomb LEPT BIT BEMP.2 ; ütemváltó gomb ;xxxxxxx Memóriába ágyazott I/O-k xxxxxxx XSEG AT 0C000H NGS: DS 1 ; nyomógomb-sor címe LEDS: DS 1 ; LED-sor címe ;xxxxxxx STACK kijelölés xxxxxxx RSEG STACK ;STACK kezdet DS 10H ;16 bájtos STACK ;xxxxxxx Program szegmens xxxxxxx RSEG PROG START: LJMP INIT DS 10 INIT: CLR A ; változók törlése MOV TEMP,A MOV UTM,A MOV KIM,A MOV BEMP,A MOV BEM,A FOPR: CALL BE_OLV ; bementek beolvasása MOV C,ENG ; működés bekapcsolása ORL C,BE ANL C,/KI MOV ENG,C JNB ENG,ALAP ; bekapcsolva? JNB LEPT,KIIRAT ; következő ütem? INC UTM ; ütemváltozó növelése MOV A,UTM CJNE A,#05H,KIIRAT ; elölről? MOV UTM,#01H ; IGEN az első ütem SJMP KIIRAT 174.oldal

175 ALAP: KIIRAT: BE_OLV : TABL: CLR A ; alapállapotba vezérlés MOV UTM,A MOV A,UTM ; az aktuális érték kiolvasása MOV DPTR,#TABL MOVC A,@A+DPTR CPL A ; kimenetek vezérlése MOV DPTR,#LEDS SJMP FOPR MOV DPTR,#NGS ; beolvasó és pozitív élt MOVX A,@DPTR ; képző rutin CPL A MOV B,A XRL A,BEM ANL A,B MOV BEMP,A MOV BEM,B RET DB 0,21H,13H,0CH,1AH ; kimeneti táblázat ;a kimenetek bit-kiosztása : X X P_B S_B Z_B P_A S_A Z_A ; MSB LSB C nyelvű forrásprogram /* Lefutó típusú sorrendi vezérlés */ #include < absacc.h > #define BE_PORT XBYTE[0xc000] /* Gyakorló nyomógomb címe */ #define KI_PORT XBYTE[0xc001] /* Gyakorló LED sor címe */ void be_olv (void); /* beolvasó fv. prototípus*/ unsigned char code TABL[]={0x0,0x21,0x13,0x0c,0x1a}; unsigned char bdata bem, bemp, bemn, kim, atm, utm, temp; sbit ENG=temp^0; sbit LEPT=bemp^2; sbit BE=bem^0; sbit KI=bem^1; void main (void) { bem=bemp=bemn=kim=atm=utm=temp=0; do { be_olv(); ENG=(BE ENG)&~KI; if (ENG) { if (LEPT) { if (++utm==5) utm=1;} } else utm=0; KI_PORT=~TABL[ utm ]; }while (1); } 175.oldal

176 void be_olv (void) { atm = ~BE_PORT; bemp= (bem ^ atm)&atm; bemn=(bem ^ atm)&bem; bem = atm; } A következő oldalakon az útkereszteződés közlekedést irányító lámpáinak vezérlőprogramját mutatjuk be három megismert PLC alkalmazásakor. A 120. ábrán az OMRON Cx Programmer fejlesztői környezetében írt program látható.. b. c. a ábra 176.oldal

177 A Siemens Simatic Step7 környezetben megírt program látható a 121.ábrán 121. ábra 177.oldal

178 A Schneider Electric Unity Pro XL környezetben fejlesztett programot mutatja a 122. ábra ábra A bemutatott programokban nem adtuk meg a vezérlés szimbólum-tábláit. 178.oldal

179 Folyadéktároló tartályok töltésének, ürítésének vezérlése A 123. ábra egy kéttartályos folyadéktároló rendszer technológiai felépítését szemlélteti. A rendszer vezérlése általános (több szekvenciájú) sorrendi feladat. A példa kapcsán mutatjuk be a program tervezését. A feladat leírása 123. ábra Szöveges feladatmegadás: A tartály rendszerben a T2 jelű a fő tartály, és a T1 jelű puffer tartály, amely szerepe a lehető folyamatos anyag-kivételezés biztosítása. A tartályból csak addig szabad üríteni, amíg a főtartályban az anyag az alsó szintjelző alatt van. A vezérléssel kell biztosítani, hogy 179.oldal

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

Irányítástechnikai alapok. Zalotay Péter főiskolai docens KKMF Irányítástechnikai alapok Zalotay Péter főiskolai docens KKMF Az irányítás feladatai és fajtái: Alapfogalmak Irányítás: Műszaki berendezések ( gépek, gyártó sorok, szállító eszközök, vegyi-, hő-technikai

Részletesebben

Előadó: Nagy István (A65)

Előadó: Nagy István (A65) Programozható logikai áramkörök FPGA eszközök Előadó: Nagy István (A65) Ajánlott irodalom: Ajtonyi I.: Digitális rendszerek, Miskolci Egyetem, 2002. Ajtonyi I.: Vezérléstechnika II., Tankönyvkiadó, Budapest,

Részletesebben

I. C8051Fxxx mikrovezérlők hardverfelépítése, működése. II. C8051Fxxx mikrovezérlők programozása. III. Digitális perifériák

I. C8051Fxxx mikrovezérlők hardverfelépítése, működése. II. C8051Fxxx mikrovezérlők programozása. III. Digitális perifériák I. C8051Fxxx mikrovezérlők hardverfelépítése, működése 1. Adja meg a belső RAM felépítését! 2. Miben különbözik a belső RAM alsó és felső felének elérhetősége? 3. Hogyan érhetők el az SFR regiszterek?

Részletesebben

IRÁNYÍTÁSTECHNIKAI ALAPFOGALMAK, VEZÉRLŐBERENDEZÉSEK FEJLŐDÉSE, PLC-GENERÁCIÓK

IRÁNYÍTÁSTECHNIKAI ALAPFOGALMAK, VEZÉRLŐBERENDEZÉSEK FEJLŐDÉSE, PLC-GENERÁCIÓK IRÁNYÍTÁSTECHNIKAI ALAPFOGALMAK, VEZÉRLŐBERENDEZÉSEK FEJLŐDÉSE, PLC-GENERÁCIÓK Irányítástechnika Az irányítás olyan művelet, mely beavatkozik valamely műszaki folyamatba annak: létrehozása (elindítása)

Részletesebben

Programozható irányító rendszerek I. Vizsgakérdés. 1. tétel

Programozható irányító rendszerek I. Vizsgakérdés. 1. tétel 1. tétel A: Ismertesse a kombinációs feladatok tervezésének, és a megvalósító program készítésének a lépéseit! Részletesen tárgyalja a - a logikai tervezés menetét, - az egyszerűsítés célját, módszereit,

Részletesebben

2. Elméleti összefoglaló

2. Elméleti összefoglaló 2. Elméleti összefoglaló 2.1 A D/A konverterek [1] A D/A konverter feladata, hogy a bemenetére érkező egész számmal arányos analóg feszültséget vagy áramot állítson elő a kimenetén. A működéséhez szükséges

Részletesebben

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

A/D és D/A konverterek vezérlése számítógéppel 11. Laboratóriumi gyakorlat A/D és D/A konverterek vezérlése számítógéppel 1. A gyakorlat célja: Az ADC0804 és a DAC08 konverterek ismertetése, bekötése, néhány felhasználási lehetőség tanulmányozása,

Részletesebben

Nagy Gergely április 4.

Nagy Gergely április 4. Mikrovezérlők Nagy Gergely BME EET 2012. április 4. ebook ready 1 Bevezetés Áttekintés Az elektronikai tervezés eszközei Mikroprocesszorok 2 A mikrovezérlők 3 Főbb gyártók Áttekintés A mikrovezérlők az

Részletesebben

3.6. HAGYOMÁNYOS SZEKVENCIÁLIS FUNKCIONÁLIS EGYSÉGEK

3.6. HAGYOMÁNYOS SZEKVENCIÁLIS FUNKCIONÁLIS EGYSÉGEK 3.6. AGYOMÁNYOS SZEKVENCIÁIS FUNKCIONÁIS EGYSÉGEK A fenti ismertető alapján elvileg tetszőleges funkciójú és összetettségű szekvenciális hálózat szerkeszthető. Vannak olyan szabványos funkciók, amelyek

Részletesebben

Programozási segédlet DS89C450 Fejlesztőpanelhez

Programozási segédlet DS89C450 Fejlesztőpanelhez Programozási segédlet DS89C450 Fejlesztőpanelhez Készítette: Fekete Dávid Processzor felépítése 2 Perifériák csatlakozása a processzorhoz A perifériák adatlapjai megtalálhatók a programozasi_segedlet.zip-ben.

Részletesebben

ATMEL ATMEGA MIKROVEZÉRLŐ-CSALÁD

ATMEL ATMEGA MIKROVEZÉRLŐ-CSALÁD Misák Sándor ATMEL ATMEGA MIKROVEZÉRLŐ-CSALÁD Nanoelektronikai és Nanotechnológiai Részleg DE TTK v.0.1 (2007.02.13.) 1. előadás 1. Általános ismeretek. 2. Sajátos tulajdonságok. 3. A processzor jellemzői.

Részletesebben

PWM elve, mikroszervó motor vezérlése MiniRISC processzoron

PWM elve, mikroszervó motor vezérlése MiniRISC processzoron PWM elve, mikroszervó motor vezérlése MiniRISC processzoron F1. A mikroprocesszorok, mint digitális eszközök, ritkán rendelkeznek közvetlen analóg kimeneti jelet biztosító perifériával, tehát valódi, minőségi

Részletesebben

3. A DIGILENT BASYS 2 FEJLESZTŐLAP LEÍRÁSA

3. A DIGILENT BASYS 2 FEJLESZTŐLAP LEÍRÁSA 3. A DIGILENT BASYS 2 FEJLESZTŐLAP LEÍRÁSA Az FPGA tervezésben való jártasság megszerzésének célszerű módja, hogy gyári fejlesztőlapot alkalmazzunk. Ezek kiválóan alkalmasak tanulásra, de egyes ipari tervezésekhez

Részletesebben

PAL és GAL áramkörök. Programozható logikai áramkörök. Előadó: Nagy István

PAL és GAL áramkörök. Programozható logikai áramkörök. Előadó: Nagy István Programozható logikai áramkörök PAL és GAL áramkörök Előadó: Nagy István Ajánlott irodalom: Ajtonyi I.: Digitális rendszerek, Miskolci Egyetem, 2002. Ajtonyi I.: Vezérléstechnika II., Tankönyvkiadó, Budapest,

Részletesebben

IDAXA-PiroSTOP. PIRINT PiroFlex Interfész. Terméklap

IDAXA-PiroSTOP. PIRINT PiroFlex Interfész. Terméklap IDAXA-PiroSTOP PIRINT PiroFlex Interfész Terméklap Hexium Kft. PIRINT Terméklap Rev 2 2 Tartalomjegyzék. ISMERTETŐ... 3 2. HARDVER... 4 2. LED... 5 2.2 KAPCSOLAT A VKGY GYŰRŰVEL... 6 2.3 CÍMBEÁLLÍTÁS...

Részletesebben

Kommunikáció az EuroProt-IED multifunkcionális készülékekkel

Kommunikáció az EuroProt-IED multifunkcionális készülékekkel Kommunikáció az EuroProt-IED multifunkcionális készülékekkel A Protecta intelligens EuroProt készülékei a védelem-technika és a mikroprocesszoros technológia fejlődésével párhuzamosan követik a kommunikációs

Részletesebben

A vezérlő alkalmas 1x16, 2x16, 2x20, 4x20 karakteres kijelzők meghajtására. Az 1. ábrán látható a modul bekötése.

A vezérlő alkalmas 1x16, 2x16, 2x20, 4x20 karakteres kijelzők meghajtására. Az 1. ábrán látható a modul bekötése. Soros LCD vezérlő A vezérlő modul lehetővé teszi, hogy az LCD-t soros vonalon illeszthessük alkalmazásunkhoz. A modul több soros protokollt is támogat, úgy, mint az RS232, I 2 C, SPI. Továbbá az LCD alapfunkcióit

Részletesebben

4.1.1. I 2 C, SPI, I 2 S, USB, PWM, UART, IrDA

4.1.1. I 2 C, SPI, I 2 S, USB, PWM, UART, IrDA 4.1.1. I 2 C, SPI, I 2 S, USB, PWM, UART, IrDA A címben található jelölések a mikrovezérlők kimentén megjelenő tipikus perifériák, típus jelzései. Mindegyikkel röviden foglalkozni fogunk a folytatásban.

Részletesebben

Analóg-digitális átalakítás. Rencz Márta/ Ress S. Elektronikus Eszközök Tanszék

Analóg-digitális átalakítás. Rencz Márta/ Ress S. Elektronikus Eszközök Tanszék Analóg-digitális átalakítás Rencz Márta/ Ress S. Elektronikus Eszközök Tanszék Mai témák Mintavételezés A/D átalakítók típusok D/A átalakítás 12/10/2007 2/17 A/D ill. D/A átalakítók A világ analóg, a jelfeldolgozás

Részletesebben

MSP430 programozás Energia környezetben. Kitekintés, további lehetőségek

MSP430 programozás Energia környezetben. Kitekintés, további lehetőségek MSP430 programozás Energia környezetben Kitekintés, további lehetőségek 1 Még nem merítettünk ki minden lehetőséget Kapacitív érzékelés (nyomógombok vagy csúszka) Az Energia egyelőre nem támogatja, csak

Részletesebben

Számítógépek felépítése, alapfogalmak

Számítógépek felépítése, alapfogalmak 2. előadás Számítógépek felépítése, alapfogalmak Lovas Szilárd, Krankovits Melinda SZE MTK MSZT kmelinda@sze.hu B607 szoba Nem reprezentatív felmérés kinek van ilyen számítógépe? 2 Nem reprezentatív felmérés

Részletesebben

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

Mintavételes szabályozás mikrovezérlő segítségével Automatizálási Tanszék Mintavételes szabályozás mikrovezérlő segítségével Budai Tamás budai.tamas@sze.hu http://maxwell.sze.hu/~budait Tartalom Mikrovezérlőkről röviden Programozási alapismeretek ismétlés

Részletesebben

Labor gyakorlat Mikrovezérlők

Labor gyakorlat Mikrovezérlők Labor gyakorlat Mikrovezérlők ATMEL AVR ARDUINO 1. ELŐADÁS BUDAI TAMÁS Tartalom Labor 2 mikrovezérlők modul 2 alkalom 1 mikrovezérlők felépítése, elmélet 2 programozás, mintaprogramok Értékelés: a 2. alkalom

Részletesebben

Labor gyakorlat Mikrovezérlők

Labor gyakorlat Mikrovezérlők Labor gyakorlat Mikrovezérlők ATMEL AVR ARDUINO 1. ELŐADÁS BUDAI TAMÁS 2015. 09. 06. Tartalom Labor 2 mikrovezérlők modul 2 alkalom 1 mikrovezérlők felépítése, elmélet 2 programozás, mintaprogramok Értékelés:

Részletesebben

10. Digitális tároló áramkörök

10. Digitális tároló áramkörök 1 10. Digitális tároló áramkörök Azokat a digitális áramköröket, amelyek a bemeneteiken megjelenő változást azonnal érvényesítik a kimeneteiken, kombinációs áramköröknek nevezik. Ide tartoznak az inverterek

Részletesebben

Programozható logikai vezérlő

Programozható logikai vezérlő PROGRAMABLE LOGIC CONTROLLER Programozható logikai vezérlő Vezérlés fejlődése Elektromechanikus (relés) vezérlések Huzalozott logikájú elektronikus vezérlések Számítógépes, programozható vezérlők A programozható

Részletesebben

1. DIGITÁLIS TERVEZÉS PROGRAMOZHATÓ LOGIKAI ÁRAMKÖRÖKKEL (PLD)

1. DIGITÁLIS TERVEZÉS PROGRAMOZHATÓ LOGIKAI ÁRAMKÖRÖKKEL (PLD) 1. DIGITÁLIS TERVEZÉS PROGRAMOZHATÓ LOGIKAI ÁRAMKÖRÖKKEL (PLD) 1 1.1. AZ INTEGRÁLT ÁRAMKÖRÖK GYÁRTÁSTECHNOLÓGIÁI A digitális berendezések tervezésekor számos technológia szerint gyártott áramkörök közül

Részletesebben

A mikroprocesszor felépítése és működése

A mikroprocesszor felépítése és működése A mikroprocesszor felépítése és működése + az egyes részegységek feladata! Információtartalom vázlata A mikroprocesszor feladatai A mikroprocesszor részegységei A mikroprocesszor működése A mikroprocesszor

Részletesebben

Irányítástechnika 1. 7. Elıadás. Programozható logikai vezérlık

Irányítástechnika 1. 7. Elıadás. Programozható logikai vezérlık Irányítástechnika 1 7. Elıadás Programozható logikai vezérlık Irodalom - Helmich József: Irányítástechnika I, 2005 - Zalotay Péter: PLC tanfolyam - Klöckner-Möller Hungária: Hardverleírás és tervezési

Részletesebben

LOGSYS LOGSYS LCD KIJELZŐ MODUL FELHASZNÁLÓI ÚTMUTATÓ. 2010. november 8. Verzió 1.0. http://logsys.mit.bme.hu

LOGSYS LOGSYS LCD KIJELZŐ MODUL FELHASZNÁLÓI ÚTMUTATÓ. 2010. november 8. Verzió 1.0. http://logsys.mit.bme.hu LOGSYS LCD KIJELZŐ MODUL FELHASZNÁLÓI ÚTMUTATÓ 2010. november 8. Verzió 1.0 http://logsys.mit.bme.hu Tartalomjegyzék 1 Bevezetés... 1 2 Kommunikációs interfész... 2 3 Memóriák az LCD vezérlőben... 3 3.1

Részletesebben

2. rész PC alapú mérőrendszer esetén hogyan történhet az adatok kezelése? Írjon pár 2-2 jellemző is az egyes esetekhez.

2. rész PC alapú mérőrendszer esetén hogyan történhet az adatok kezelése? Írjon pár 2-2 jellemző is az egyes esetekhez. Méréselmélet és mérőrendszerek (levelező) Kérdések - 2. előadás 1. rész Írja fel a hiba fogalmát és hogyan számítjuk ki? Hogyan számítjuk ki a relatív hibát? Mit tud a rendszeres hibákról és mi az okozója

Részletesebben

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

A mikroszámítógép felépítése. 1. Processzoros rendszerek fő elemei mikroszámítógépek alapja a mikroprocesszor. Elemei a mikroprocesszor, memória, és input/output eszközök. komponenseket valamilyen buszrendszer köti össze, amelyen az

Részletesebben

Laborgyakorlat Logikai áramkörök számítógéppel segített tervezése (CAD)

Laborgyakorlat Logikai áramkörök számítógéppel segített tervezése (CAD) Laborgyakorlat Logikai áramkörök számítógéppel segített tervezése (CAD) Multiplexer (MPX) A multiplexer egy olyan áramkör, amely több bemeneti adat közül a megcímzett bemeneti adatot továbbítja a kimenetére.

Részletesebben

Dr. Oniga István DIGITÁLIS TECHNIKA 8

Dr. Oniga István DIGITÁLIS TECHNIKA 8 Dr. Oniga István DIGITÁLIS TECHNIA 8 Szekvenciális (sorrendi) hálózatok Szekvenciális hálózatok fogalma Tárolók RS tárolók tárolók T és D típusú tárolók Számlálók Szinkron számlálók Aszinkron számlálók

Részletesebben

Laboratóriumi műszerek megvalósítása ARM alapú mikrovezérlővel és Linux-szal

Laboratóriumi műszerek megvalósítása ARM alapú mikrovezérlővel és Linux-szal Laboratóriumi műszerek megvalósítása ARM alapú mikrovezérlővel és Linux-szal Fuszenecker Róbert Budapesti Műszaki Főiskola Kandó Kálmán Műszaki Főiskolai Kar 2007. október 17. Laboratóriumi berendezések

Részletesebben

Megoldás. Feladat 1. Statikus teszt Specifikáció felülvizsgálat

Megoldás. Feladat 1. Statikus teszt Specifikáció felülvizsgálat Megoldás Feladat 1. Statikus teszt Specifikáció felülvizsgálat A feladatban szereplő specifikáció eredeti, angol nyelvű változata egy létező eszköz leírása. Nem állítjuk, hogy az eredeti dokumentum jól

Részletesebben

Új kompakt X20 vezérlő integrált I/O pontokkal

Új kompakt X20 vezérlő integrált I/O pontokkal Új kompakt X20 vezérlő integrált I/O pontokkal Integrált flash 4GB belső 16 kb nem felejtő RAM B&R tovább bővíti a nagy sikerű X20 vezérlő családot, egy kompakt vezérlővel, mely integrált be és kimeneti

Részletesebben

Ismerkedjünk tovább a számítógéppel. Alaplap és a processzeor

Ismerkedjünk tovább a számítógéppel. Alaplap és a processzeor Ismerkedjünk tovább a számítógéppel Alaplap és a processzeor Neumann-elvű számítógépek főbb egységei A részek feladatai: Központi egység: Feladata a számítógép vezérlése, és a számítások elvégzése. Operatív

Részletesebben

SYS700-PLM Power Line Monitor modul DDC rendszerelemek, DIALOG-III család

SYS700-PLM Power Line Monitor modul DDC rendszerelemek, DIALOG-III család DDC rendszerelemek, DIALOG-III család KIVITEL ALKALMAZÁS A az energiaellátás minőségi jellemzőinek mérésére szolgáló szabadon programozható készülék. Épületfelügyeleti rendszerben (BMS), valamint önállóan

Részletesebben

Az irányítástechnika alapfogalmai. 2008.02.15. Irányítástechnika MI BSc 1

Az irányítástechnika alapfogalmai. 2008.02.15. Irányítástechnika MI BSc 1 Az irányítástechnika alapfogalmai 2008.02.15. 1 Irányítás fogalma irányítástechnika: önműködő irányítás törvényeivel és gyakorlati megvalósításával foglakozó műszaki tudomány irányítás: olyan művelet,

Részletesebben

XI. DIGITÁLIS RENDSZEREK FIZIKAI MEGVALÓSÍTÁSÁNAK KÉRDÉSEI Ebben a fejezetben a digitális rendszerek analóg viselkedésével kapcsolatos témákat

XI. DIGITÁLIS RENDSZEREK FIZIKAI MEGVALÓSÍTÁSÁNAK KÉRDÉSEI Ebben a fejezetben a digitális rendszerek analóg viselkedésével kapcsolatos témákat XI. DIGITÁLIS RENDSZEREK FIZIKAI MEGVALÓSÍTÁSÁNAK KÉRDÉSEI Ebben a fejezetben a digitális rendszerek analóg viselkedésével kapcsolatos témákat vesszük sorra. Elsőként arra térünk ki, hogy a logikai értékek

Részletesebben

Iványi László ARM programozás. Szabó Béla 6. Óra ADC és DAC elmélete és használata

Iványi László ARM programozás. Szabó Béla 6. Óra ADC és DAC elmélete és használata ARM programozás 6. Óra ADC és DAC elmélete és használata Iványi László ivanyi.laszlo@stud.uni-obuda.hu Szabó Béla szabo.bela@stud.uni-obuda.hu Mi az ADC? ADC -> Analog Digital Converter Analóg jelek mintavételezéssel

Részletesebben

DIGITÁLIS TECHNIKA I

DIGITÁLIS TECHNIKA I DIGITÁLIS TECHNIKA I Dr. Kovács Balázs Dr. Lovassy Rita Dr. Pődör Bálint Óbudai Egyetem KVK Mikroelektronikai és Technológia Intézet 11. ELŐADÁS 1 PÉLDA: 3 A 8 KÖZÜL DEKÓDÓLÓ A B C E 1 E 2 3/8 O 0 O 1

Részletesebben

Az interrupt Benesóczky Zoltán 2004

Az interrupt Benesóczky Zoltán 2004 Az interrupt Benesóczky Zoltán 2004 1 Az interrupt (program megszakítás) órajel generátor cím busz környezet RESET áramkör CPU ROM RAM PERIF. adat busz vezérlõ busz A periféria kezelés során információt

Részletesebben

Yottacontrol I/O modulok beállítási segédlet

Yottacontrol I/O modulok beállítási segédlet Yottacontrol I/O modulok beállítási segédlet : +36 1 236 0427 +36 1 236 0428 Fax: +36 1 236 0430 www.dialcomp.hu dial@dialcomp.hu 1131 Budapest, Kámfor u.31. 1558 Budapest, Pf. 7 Tartalomjegyzék Bevezető...

Részletesebben

Programozható Logikai Vezérlő

Programozható Logikai Vezérlő 4. előadás Tartalom: A feladata A felépítése, típusai, részegységei Programnyelvek Programozás (FST) FESTO -k bemutatása (FEC20-DC, ) FEC programozása FST bemutatása Automatizálástechnika I. előadás Farkas

Részletesebben

Programozó- készülék Kezelőkozol RT óra (pl. PC) Digitális bemenetek ROM memória Digitális kimenetek RAM memória Analóg bemenet Analóg kimenet

Programozó- készülék Kezelőkozol RT óra (pl. PC) Digitális bemenetek ROM memória Digitális kimenetek RAM memória Analóg bemenet Analóg kimenet 2. ZH A csoport 1. Hogyan adható meg egy digitális műszer pontossága? (3p) Digitális műszereknél a pontosságot két adattal lehet megadni: Az osztályjel ±%-os értékével, és a ± digit értékkel (jellemző

Részletesebben

EB134 Komplex digitális áramkörök vizsgálata

EB134 Komplex digitális áramkörök vizsgálata EB34 Komplex digitális áramkörök vizsgálata BINÁRIS ASZINKRON SZÁMLÁLÓK A méréshez szükséges műszerek, eszközök: - EB34 oktatókártya - db oszcilloszkóp (6 csatornás) - db függvénygenerátor Célkitűzés A

Részletesebben

A tervfeladat sorszáma: 1 A tervfeladat címe: ALU egység 8 regiszterrel és 8 utasítással

A tervfeladat sorszáma: 1 A tervfeladat címe: ALU egység 8 regiszterrel és 8 utasítással .. A tervfeladat sorszáma: 1 A ALU egység 8 regiszterrel és 8 utasítással Minimálisan az alábbi képességekkel rendelkezzen az ALU 8-bites operandusok Aritmetikai funkciók: összeadás, kivonás, shift, komparálás

Részletesebben

5. Hét Sorrendi hálózatok

5. Hét Sorrendi hálózatok 5. Hét Sorrendi hálózatok Digitális technika 2015/2016 Bevezető példák Példa 1: Italautomata Legyen az általunk vizsgált rendszer egy italautomata, amelyről az alábbi dolgokat tudjuk: 150 Ft egy üdítő

Részletesebben

Laborgyakorlat Logikai áramkörök számítógéppel segített tervezése (CAD)

Laborgyakorlat Logikai áramkörök számítógéppel segített tervezése (CAD) Laborgyakorlat Logikai áramkörök számítógéppel segített tervezése (CAD) Bevezetés A laborgyakorlatok alapvető célja a tárgy későbbi laborgyakorlataihoz szükséges ismeretek átadása, az azokban szereplő

Részletesebben

Számítógép felépítése

Számítógép felépítése Alaplap, processzor Számítógép felépítése Az alaplap A számítógép teljesítményét alapvetően a CPU és belső busz sebessége (a belső kommunikáció sebessége), a memória mérete és típusa, a merevlemez sebessége

Részletesebben

Járműfedélzeti rendszerek I. 4. előadás Dr. Bécsi Tamás

Járműfedélzeti rendszerek I. 4. előadás Dr. Bécsi Tamás Járműfedélzeti rendszerek I. 4. előadás Dr. Bécsi Tamás Rendszer órajel Órajel osztás XTAL Divide Control (XDIV) Register 2 129 oszthat Órajel források CKSEL fuse bit Külső kristály/kerámia rezonátor Külső

Részletesebben

X. ANALÓG JELEK ILLESZTÉSE DIGITÁLIS ESZKÖZÖKHÖZ

X. ANALÓG JELEK ILLESZTÉSE DIGITÁLIS ESZKÖZÖKHÖZ X. ANALÓG JELEK ILLESZTÉSE DIGITÁLIS ESZKÖZÖKHÖZ Ma az analóg jelek feldolgozása (is) mindinkább digitális eszközökkel és módszerekkel történik. A feldolgozás előtt az analóg jeleket digitalizálni kell.

Részletesebben

Készítette: Oláh István mestertanár

Készítette: Oláh István mestertanár BME Automatizálási és Alkalmazott Informatikai Tanszék Villamos laboratórium 1. PLC-k programoza sa Mérési útmutató Készítette: Oláh István mestertanár (olah.istvan@aut.bme.hu) 2014. szeptember Bevezetés

Részletesebben

Mintavételezés tanulmányozása. AD - konverzió. Soros kommunikáció

Mintavételezés tanulmányozása. AD - konverzió. Soros kommunikáció Mintavételezés tanulmányozása. AD - konverzió. Soros kommunikáció A gyakorlat célja A gyakorlat során a dspic30f6010 digitális jelprocesszor Analóg Digital konverterét tanulmányozzuk. A mintavételezett

Részletesebben

Irányítástechnika Elıadás. A logikai hálózatok építıelemei

Irányítástechnika Elıadás. A logikai hálózatok építıelemei Irányítástechnika 1 6. Elıadás A logikai hálózatok építıelemei Irodalom - Kovács Csongor: Digitális elektronika, 2003 - Zalotay Péter: Digitális technika, 2004 - U. Tiecze, Ch. Schenk: Analóg és digitális

Részletesebben

Mérési jegyzőkönyv. az ötödik méréshez

Mérési jegyzőkönyv. az ötödik méréshez Mérési jegyzőkönyv az ötödik méréshez A mérés időpontja: 2007-10-30 A mérést végezték: Nyíri Gábor kdu012 mérőcsoport A mérést vezető oktató neve: Szántó Péter A jegyzőkönyvet tartalmazó fájl neve: ikdu0125.doc

Részletesebben

1. Kombinációs hálózatok mérési gyakorlatai

1. Kombinációs hálózatok mérési gyakorlatai 1. Kombinációs hálózatok mérési gyakorlatai 1.1 Logikai alapkapuk vizsgálata A XILINX ISE DESIGN SUITE 14.7 WebPack fejlesztőrendszer segítségével és töltse be a rendelkezésére álló SPARTAN 3E FPGA ba:

Részletesebben

DIGITÁLIS TECHNIKA 8 Dr Oniga. I stván István

DIGITÁLIS TECHNIKA 8 Dr Oniga. I stván István Dr. Oniga István DIGITÁLIS TECHNIA 8 Szekvenciális (sorrendi) hálózatok Szekvenciális hálózatok fogalma Tárolók RS tárolók tárolók T és D típusú tárolók Számlálók Szinkron számlálók Aszinkron számlálók

Részletesebben

Digitális technika (VIMIAA01) Laboratórium 9

Digitális technika (VIMIAA01) Laboratórium 9 BUDAPESTI MŰSZAKI ÉS GAZDASÁGTUDOMÁNYI EGYETEM VILLAMOSMÉRNÖKI ÉS INFORMATIKAI KAR MÉRÉSTECHNIKA ÉS INFORMÁCIÓS RENDSZEREK TANSZÉK Digitális technika (VIMIAA01) Laboratórium 9 Fehér Béla Raikovich Tamás,

Részletesebben

A LOGSYS GUI. Fehér Béla Raikovich Tamás, Laczkó Péter BME MIT FPGA laboratórium

A LOGSYS GUI. Fehér Béla Raikovich Tamás, Laczkó Péter BME MIT FPGA laboratórium BUDAPESTI MŐSZAKI ÉS GAZDASÁGTUDOMÁNYI EGYETEM VILLAMOSMÉRNÖKI ÉS INFORMATIKAI KAR MÉRÉSTECHNIKA ÉS INFORMÁCIÓS RENDSZEREK TANSZÉK A LOGSYS GUI Fehér Béla Raikovich Tamás, Laczkó Péter BME MIT atórium

Részletesebben

WAGO PLC-vel vezérelt hő- és füstelvezetés

WAGO PLC-vel vezérelt hő- és füstelvezetés WAGO PLC-vel vezérelt hő- és füstelvezetés Wago Hungária Kft. Cím: 2040. Budaörs, Gyár u. 2. Tel: 23 / 502 170 Fax: 23 / 502 166 E-mail: info.hu@wago.com Web: www.wago.com Készítette: Töreky Gábor Tel:

Részletesebben

Digitális technika (VIMIAA01) Laboratórium 9

Digitális technika (VIMIAA01) Laboratórium 9 BUDAPESTI MŰSZAKI ÉS GAZDASÁGTUDOMÁNYI EGYETEM VILLAMOSMÉRNÖKI ÉS INFORMATIKAI KAR MÉRÉSTECHNIKA ÉS INFORMÁCIÓS RENDSZEREK TANSZÉK Digitális technika (VIMIAA01) Laboratórium 9 Fehér Béla Raikovich Tamás,

Részletesebben

PAL és s GAL áramkörök

PAL és s GAL áramkörök Programozható logikai áramkörök PAL és s GAL áramkörök Előadó: Nagy István Ajánlott irodalom: Ajtonyi I.: Digitális rendszerek, Miskolci Egyetem, 2002. Ajtonyi I.: Vezérléstechnika II., Tankönyvkiadó,

Részletesebben

DIGITÁLIS TECHNIKA 7. Előadó: Dr. Oniga István

DIGITÁLIS TECHNIKA 7. Előadó: Dr. Oniga István IGITÁLIS TECHNIKA 7 Előadó: r. Oniga István Szekvenciális (sorrendi) hálózatok Szekvenciális hálózatok fogalma Tárolók S tárolók JK tárolók T és típusú tárolók Számlálók Szinkron számlálók Aszinkron számlálók

Részletesebben

ÍRÁSBELI FELADAT MEGOLDÁSA

ÍRÁSBELI FELADAT MEGOLDÁSA 54 523 01 0000 00 00-2013 MAGYAR KERESKEDELMI ÉS IPARKAMARA Országos Szakmai Tanulmányi Verseny Elődöntő ÍRÁSBELI FELADAT MEGOLDÁSA Szakképesítés: 54 523 01 0000 00 00 SZVK rendelet száma: Modulok: 0919-06/2

Részletesebben

elektronikus adattárolást memóriacím

elektronikus adattárolást memóriacím MEMÓRIA Feladata A memória elektronikus adattárolást valósít meg. A számítógép csak olyan műveletek elvégzésére és csak olyan adatok feldolgozására képes, melyek a memóriájában vannak. Az információ tárolása

Részletesebben

8.3. AZ ASIC TESZTELÉSE

8.3. AZ ASIC TESZTELÉSE 8.3. AZ ASIC ELÉSE Az eddigiekben a terv helyességének vizsgálatára szimulációkat javasoltunk. A VLSI eszközök (közöttük az ASIC) tesztelése egy sokrétűbb feladat. Az ASIC modellezése és a terv vizsgálata

Részletesebben

Irányítástechnika 1. 8. Elıadás. PLC rendszerek konfigurálása

Irányítástechnika 1. 8. Elıadás. PLC rendszerek konfigurálása Irányítástechnika 1 8. Elıadás PLC rendszerek konfigurálása Irodalom - Helmich József: Irányítástechnika I, 2005 - Zalotay Péter: PLC tanfolyam - Klöckner-Möller Hungária: Hardverleírás és tervezési segédlet,

Részletesebben

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

MINTA Írásbeli Záróvizsga Mechatronikai mérnök MSc. Debrecen, MINTA Írásbeli Záróvizsga Mechatronikai mérnök MSc Debrecen, 2017. 01. 03. Név: Neptun kód: Megjegyzések: A feladatok megoldásánál használja a géprajz szabályait, valamint a szabványos áramköri elemeket.

Részletesebben

2) Tervezzen Stibitz kód szerint működő, aszinkron decimális előre számlálót! A megvalósításához

2) Tervezzen Stibitz kód szerint működő, aszinkron decimális előre számlálót! A megvalósításához XIII. szekvenciális hálózatok tervezése ) Tervezzen digitális órához, aszinkron bináris előre számláló ciklus rövidítésével, 6-os számlálót! megvalósításához negatív élvezérelt T típusú tárolót és NN kaput

Részletesebben

Mechatronika és mikroszámítógépek. 2016/2017 I. félév. Analóg-digitális átalakítás ADC, DAC

Mechatronika és mikroszámítógépek. 2016/2017 I. félév. Analóg-digitális átalakítás ADC, DAC Mechatronika és mikroszámítógépek 2016/2017 I. félév Analóg-digitális átalakítás ADC, DAC AD átalakítás Cél: Analóg (időben és értékben folytonos) elektromos mennyiség kifejezése digitális (értékében nagyságában

Részletesebben

Irányítástechnika 12. évfolyam

Irányítástechnika 12. évfolyam Irányítástechnika 12. évfolyam Irányítástechnikai alapismeretek Az irányítás fogalma. Irányítási példák. Az irányítás részműveletei: Érzékelés (információszerzés). Ítéletalkotás (az megszerzett információ

Részletesebben

MPLAB IDE - SIM - - Rövid ismertető a használathoz - Kincses Levente 3E22 89/ November 14. Szabadka

MPLAB IDE - SIM - - Rövid ismertető a használathoz - Kincses Levente 3E22 89/ November 14. Szabadka MPLAB IDE - SIM - - Rövid ismertető a használathoz - 3E22 89/2004 2006. November 14 Szabadka - 2 - Tartalomjegyzék TARTALOMJEGYZÉK 3 SIMULATOR I/O 4 SIMULATOR STIMULUS 4 STIMULUS VEZÉRLŐ (CONTROLLER) 5

Részletesebben

Jelfeldolgozás a közlekedésben. 2017/2018 II. félév. Analóg-digitális átalakítás ADC, DAC

Jelfeldolgozás a közlekedésben. 2017/2018 II. félév. Analóg-digitális átalakítás ADC, DAC Jelfeldolgozás a közlekedésben 2017/2018 II. félév Analóg-digitális átalakítás ADC, DAC AD átalakítás Cél: Analóg (időben és értékben folytonos) elektromos mennyiség kifejezése digitális (értékében nagyságában

Részletesebben

7.hét: A sorrendi hálózatok elemei II.

7.hét: A sorrendi hálózatok elemei II. 7.hét: A sorrendi hálózatok elemei II. Tárolók Bevezetés Bevezetés Regiszterek Számlálók Memóriák Regiszter DEFINÍCIÓ Tárolóegységek összekapcsolásával, egyszerű bemeneti kombinációs hálózattal kiegészítve

Részletesebben

Szekvenciális hálózatok és automaták

Szekvenciális hálózatok és automaták Szekvenciális hálózatok a kombinációs hálózatokból jöhetnek létre tárolási tulajdonságok hozzáadásával. A tárolás megvalósítása történhet a kapcsolás logikáját képező kombinációs hálózat kimeneteinek visszacsatolásával

Részletesebben

Számítógép architektúra

Számítógép architektúra Budapesti Műszaki Főiskola Regionális Oktatási és Innovációs Központ Székesfehérvár Számítógép architektúra Dr. Seebauer Márta főiskolai tanár seebauer.marta@roik.bmf.hu Irodalmi források Cserny L.: Számítógépek

Részletesebben

Az I2C egy soros, 8 bit-es, kétirányú kommunikációs protokoll, amelynek sebessége normál üzemmódban 100kbit/s, gyors üzemmódban 400kbit/s.

Az I2C egy soros, 8 bit-es, kétirányú kommunikációs protokoll, amelynek sebessége normál üzemmódban 100kbit/s, gyors üzemmódban 400kbit/s. Az I2C busz fizikai kialakítása Az I2C egy soros, 8 bit-es, kétirányú kommunikációs protokoll, amelynek sebessége normál üzemmódban 100kbit/s, gyors üzemmódban 400kbit/s. I2C busz csak két db kétirányú

Részletesebben

Az MSP430 mikrovezérlők digitális I/O programozása

Az MSP430 mikrovezérlők digitális I/O programozása 10.2.1. Az MSP430 mikrovezérlők digitális I/O programozása Az MSP430 mikrovezérlők esetében minden kimeneti / bemeneti (I/O) vonal önállóan konfigurálható, az P1. és P2. csoportnak van megszakítás létrehozó

Részletesebben

Alapkapuk és alkalmazásaik

Alapkapuk és alkalmazásaik Alapkapuk és alkalmazásaik Bevezetés az analóg és digitális elektronikába Szabadon választható tárgy Összeállította: Farkas Viktor Irányítás, irányítástechnika Az irányítás esetünkben műszaki folyamatok

Részletesebben

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

LabVIEW példák és bemutatók KÉSZÍTETTE: DR. FÜVESI VIKTOR LabVIEW példák és bemutatók KÉSZÍTETTE: DR. FÜVESI VIKTOR LabVIEW-ról National Instruments (NI) által fejlesztett Grafikus programfejlesztő környezet, méréstechnikai, vezérlési, jelfeldolgozási feladatok

Részletesebben

SYS700-A Digitális szabályozó és vezérlõ modul DDC rendszerelemek, DIALOG-III család. Terméktámogatás:

SYS700-A Digitális szabályozó és vezérlõ modul DDC rendszerelemek, DIALOG-III család. Terméktámogatás: DDC rendszerelemek, DIALOG-III család KIVITEL ALKALMAZÁS A SYS00-A a Dialog-III készülékcsalád analóg jelek kezelésére alkalmas tagja, amely kifejezetten épületgépészeti szabályozási és vezérlési feladatok

Részletesebben

Norway Grants. Az akkumulátor mikromenedzsment szabályozás - BMMR - fejlesztés technológiai és műszaki újdonságai. Kakuk Zoltán, Vision 95 Kft.

Norway Grants. Az akkumulátor mikromenedzsment szabályozás - BMMR - fejlesztés technológiai és műszaki újdonságai. Kakuk Zoltán, Vision 95 Kft. Norway Grants AKKUMULÁTOR REGENERÁCIÓS ÉS Az akkumulátor mikromenedzsment szabályozás - BMMR - fejlesztés technológiai és műszaki újdonságai Kakuk Zoltán, Vision 95 Kft. 2017.04.25. Rendszer szintű megoldás

Részletesebben

MPLC-06-MIO 1 analóg és 3 digitális bemeneti állapotot átjelző interfész. Műszaki leírás

MPLC-06-MIO 1 analóg és 3 digitális bemeneti állapotot átjelző interfész. Műszaki leírás MPLC-06-MIO analóg és digitális bemeneti állapotot átjelző interfész MultiCom Fejlesztő és Szolgáltató Kft. H -1033 Budapest, Szőlőkert u. 4. Tel.: 437-8120, 437-8121, Fax.: 437-8122, E-mail: multicomkft@multicomkft.hu,

Részletesebben

Közlekedés gépjárművek elektronikája, diagnosztikája. Mikroprocesszoros technika. Memóriák, címek, alapáramkörök. A programozás alapjai

Közlekedés gépjárművek elektronikája, diagnosztikája. Mikroprocesszoros technika. Memóriák, címek, alapáramkörök. A programozás alapjai Közlekedés gépjárművek elektronikája, diagnosztikája Mikroprocesszoros technika. Memóriák, címek, alapáramkörök. A programozás alapjai TÁMOP-2.2.3-09/1-2009-0010 A Széchenyi István Térségi Integrált Szakképző

Részletesebben

5. Laborgyakorlat. Számláló funkciók, időzítő funkciók.

5. Laborgyakorlat. Számláló funkciók, időzítő funkciók. 5. Laborgyakorlat Számláló funkciók, időzítő funkciók. A gyakorlat célja A számlálók és időzítők használata gyakori a folyamatirányításban. Gondoljunk egy futószalag indításának a késleltetésére, megállításánál

Részletesebben

6. hét: A sorrendi hálózatok elemei és tervezése

6. hét: A sorrendi hálózatok elemei és tervezése 6. hét: A sorrendi hálózatok elemei és tervezése Sorrendi hálózat A Sorrendi hálózat Y Sorrendi hálózat A Sorrendi hálózat Y Belső állapot Sorrendi hálózat Primer változó A Sorrendi hálózat Y Szekunder

Részletesebben

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

Analóg-digitál átalakítók (A/D konverterek) 9. Laboratóriumi gyakorlat Analóg-digitál átalakítók (A/D konverterek) 1. A gyakorlat célja: Bemutatjuk egy sorozatos közelítés elvén működő A/D átalakító tömbvázlatát és elvi kapcsolási rajzát. Tanulmányozzuk

Részletesebben

Roger UT-2. Kommunikációs interfész V3.0

Roger UT-2. Kommunikációs interfész V3.0 ROGER UT-2 1 Roger UT-2 Kommunikációs interfész V3.0 TELEPÍTŐI KÉZIKÖNYV ROGER UT-2 2 ÁLTALÁNOS LEÍRÁS Az UT-2 elektromos átalakítóként funkcionál az RS232 és az RS485 kommunikációs interfész-ek között.

Részletesebben

SR mini PLC Modbus illesztő modul. Modul beállítása Bemeneti pontok kiosztása főmodul esetén Bemeneti pontok címkiosztása kiegészítő modul esetében

SR mini PLC Modbus illesztő modul. Modul beállítása Bemeneti pontok kiosztása főmodul esetén Bemeneti pontok címkiosztása kiegészítő modul esetében SR mini PLC Modbus illesztő modul Modul beállítása Bemeneti pontok kiosztása főmodul esetén Bemeneti pontok címkiosztása kiegészítő modul esetében Kimeneti pontok címkiosztása főmodul esetében, olvasásra

Részletesebben

KIBŐVÍTETT RUGALMAS AUTOMATIZÁLÁS

KIBŐVÍTETT RUGALMAS AUTOMATIZÁLÁS KIBŐVÍTETT RUGALMAS AUTOMATIZÁLÁS ZEN-C4 nagyobb rugalmasság RS-485 kommunikációval Kínálatunk kommunikációs típussal bővült. Így már lehetősége van több ZEN egység hálózati környezetbe csatlakoztatására.

Részletesebben

Irányítástechnika 1. 9. Elıadás. PLC-k programozása

Irányítástechnika 1. 9. Elıadás. PLC-k programozása Irányítástechnika 1 9. Elıadás PLC-k programozása Irodalom - Helmich József: Irányítástechnika I, 2005 - Zalotay Péter: PLC tanfolyam - Jancskárné Anweiler Ildikó: PLC programozás az IEC 1131-3 szabvány

Részletesebben

Labor gyakorlat Mikrovezérlők

Labor gyakorlat Mikrovezérlők Labor gyakorlat Mikrovezérlők ATMEL AVR ARDUINO 1. ELŐADÁS BUDAI TAMÁS Tartalom Mikrovezérlők Mikrovezérlők felépítése, működése Mikrovezérlő típusok, gyártók Mikrovezérlők perifériái Mikrovezérlők programozása

Részletesebben

A 27/2012 (VIII. 27.) NGM rendelet (12/2013 (III. 28.) NGM rendelet által módosított) szakmai és vizsgakövetelménye alapján.

A 27/2012 (VIII. 27.) NGM rendelet (12/2013 (III. 28.) NGM rendelet által módosított) szakmai és vizsgakövetelménye alapján. A 27/2012 (VIII. 27.) NGM rendelet (12/2013 (III. 28.) NGM rendelet által módosított) szakmai és vizsgakövetelménye alapján. Szakképesítés, azonosító száma és megnevezése 54 523 01 Automatikai technikus

Részletesebben

PLC-K ÁLTALÁNOS FELÉPÍTÉSE

PLC-K ÁLTALÁNOS FELÉPÍTÉSE PLC-K ÁLTALÁNOS FELÉPÍTÉSE Második generációs PLC felépítése PLC-k programbeviteli lehetőségei A PLC-k programozása történhet: konzollal célszámítógéppel általános célú PC-vel A célszámítógépek ma már

Részletesebben

Digitális rendszerek. Digitális logika szintje

Digitális rendszerek. Digitális logika szintje Digitális rendszerek Digitális logika szintje CPU lapkák Mai modern CPU-k egy lapkán helyezkednek el Kapcsolat a külvilággal: kivezetéseken (lábak) keresztül Cím, adat és vezérlőjelek, ill. sínek (buszok)

Részletesebben

F1301 Bevezetés az elektronikába Digitális elektronika alapjai Szekvenciális hálózatok

F1301 Bevezetés az elektronikába Digitális elektronika alapjai Szekvenciális hálózatok F3 Bevezetés az elektronikába Digitális elektronika alapjai Szekvenciális hálózatok F3 Bev. az elektronikába SZEKVENIÁLIS LOGIKAI HÁLÓZATOK A kimenetek állapota nem csak a bemenetek állapotainak kombinációjától

Részletesebben

PLC Versenyfeladat. XIV. Országos Irányítástechnikai Programozó Verseny Budapest, március Összeállította az EvoPro Kft.

PLC Versenyfeladat. XIV. Országos Irányítástechnikai Programozó Verseny Budapest, március Összeállította az EvoPro Kft. PLC Versenyfeladat XIV. Országos Irányítástechnikai Programozó Verseny Budapest, 2008. március 19-21. Összeállította az EvoPro Kft. Általános bemutatás A feladatban szereplő eszköz egy 8x8 képpontos LED-mátrix

Részletesebben