Tartalomjegyzék 1. A programozható logikai vezérlők (PLC)... 1 1.1. Mi a PLC...2 1.1.1. Kompakt...3 1.1.2. Moduláris...3 1.2. Történeti áttekintés...3 1.3. Programozott logikai műveletvégző egységek...7 1.3.1. Rögzített (fix) programozás...7 1.3.2. Változtatható programozás...8 A szabad programozás...9 1.3.3. Szabadon programozható logikai vezérlő...10 Bitprocesszor...11 1.3.4. Szabadon programozható logikai gép...13 2. Az alkalmazott PLC típusok összehasonlítása... 17 2.1. Hardver kialakítás...17 3. A PLC k programozási nyelvei... 21 3.1. A PLC típusonkénti programozás...21 3.2. A PLC programozási nyelvek szabványosítása...22 3.2.1. A létradiagram az LD (Ladder Diagram) nyelv...23 3.2.2. Az FBD (Function Block Diagram) nyelv....27 3.2.3. Utasítás listás IL (Instriction Logic) nyelv...28 4. Programfejlesztői környezetek... 29 5. A programfejlesztés... 31 5.1. A programírás első lépései a Step7-MicroWin környezetben...31 5.2. A programírás első lépései a CX- Programmer 8 környezetben...33 1. A programozható logikai vezérlők (PLC) Az elektronika fejlődésének első ötven évét a híradástechnikai fejlesztések határozzák meg. Az 1940-es évektől elsődlegesen a tranzisztor megjelenésétől kezdődik a számítástechnika fejlődése. A 60-as évek eredményei, az integrált áramkörök megjelenése, a nagy számítógépek alkalmazása felkeltette az ipari érdeklődését is ezen eszközök iránt. Ha lehet differenciálegyenleteket megoldani számítógépekkel, akkor miért ne lehetne az ipari irányítási feladatokra is alkalmazni e gépeket. Első alkalmazások a folyamatirányító számítógépek, amelyek csak kondicionált körülmények között használhatók. A közvetlen ipari környezetben is felhasználható gépek iránti igény kielégítésére született meg 1968- ban a Programozható Logikai Vezérlő a PLC (Programmable Logic Controller). Mindenesetre az ipari folyamatirányítást és a PLC -k fejlődését több fontos dolog is befolyásolta. 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. 1.1. Mi a PLC A PLC egy programozható vezérlő, tulajdonképpen egy ipari számítógép. Felépítésében, működésébe is digitális számítógép. Sajátossága elsősorban a be-, és kimeneti illesztőegységek kialakításában található. Fontos szempont az ipari környezetben keletkező elektromágneses zajokkal szembeni védettség, illetve a környezeti hőmérsékletingadozások működést befolyásoló hatásának kiküszöbölése. A PLC-ket elsősorban az iparban használják, gépek, berendezések, gyártósorok vezérlésére, irányítására. Digitális (kétállapotú) és analóg ki és bemenetei vannak, amelyek iparban szabványos jelek fogadására és kiadására alkalmasak. (gyakori digitális jelek: 24V DC, 24V AC, 120/230V AC, gyakori analóg jelek: 0-10V, 0-20mA, 4-20mA, 0-5V, hőelemek, ellenállás hőmérők). A digitális kimenetek közvetve vagy közvetlenül a berendezés beavatkozó szerveire kapcsolódnak. Pl. mágnesszelepek, villanymotorok. A digitális bemenetek a berendezés részeinek állapotáról (végállás kapcsolók, pozícióérzékelők, fotocellák) vagy kezelőszervekről jövő jeleket fogadnak (kapcsolók, nyomógombok). Az analóg bemenetek mérőjeleket fogadnak (nyomás, áram, feszültség, hőmérséklet, áramlás, stb.). Analóg kimenetek alkalmasak fokozatmentes szabályzó-beavatkozó szervek meghajtására (frekvenciaváltók, proporcionális szelepek, fűtőteljesítmény meghatározása, stb.). Ki kell emelni, hogy kezdettől fogva igény volt a külső elsősorban a programozó eszközökkel történő soros adatátviteles kommunikáció kialakítására. A PLC legfontosabb tulajdonságai, hogy valamilyen magasabb szintű programozási nyelven programozható, gyakorlatilag minden vezérlésben és szabályozásban használt szabványos ipari jelhez közvetlenül illeszthető, vagy van már kész megoldás az illesztés fizikai megvalósítására. Saját, belső operációs rendszerrel rendelkezik, ami felügyeli a belső perifériákat és a bővítő modulok működését, a kommunikációt (ha van), futtatja a felhasználó vezérlőprogramját és valamilyen szinten kezeli a hibákat. Felépítését tekintve kétféle PLC-t szoktak megkülönböztetni:
1.1.1. Kompakt Egy komplett készülék, amely a tartalmazza a központi vezérlőegységet (CPU), vannak be és kimeneti illesztő egységei, kommunikációs csatlakozója. Általában van bővítési lehetőség is, ha a beépített ki és bemenetek száma nem lenne elég. Egy gyártónál is rendszerint sokféle altípusa létezik különböző I/O számmal és fajtával. Kisebb feladatokra használják, ahol kicsi az I/O igény. 1.1.2. Moduláris A komplett PLC részegységekből (modulokból) építhető fel. Van egy CPU, ami lényegében maga a vezérlő, de ki és bemenetek nélkül. Ehhez lehet különböző tápegységeket, ki és bemeneteket tartalmazó modulokat választani, amelyek egymáshoz csatlakoztatva adják a kész konfigurációt. Ezzel a megoldással a PLC skálázható az adott feladatra. Használható kevés, de nagyon sok ki és bemenet, vagy speciális modul. A közepes és nagyobb teljesítményű PLC-kre jellemző ez a kialakítás. Az első PLC-k a huzalozott relés vezérlések kiváltására készültek. Ilyen feladatra a mai PLC-k is alkalmasak, de rengeteg további funkcióval is bővültek a generációk fejlődése során. Ilyen funkció pl. az analóg jelek kezelése (szabályozási feladatok ellátására), a speciális ki és bemenetekkel való bővíthetőség lehetősége (pl. számláló bemenet, szervo vezérlő kimeneti modul, PWM kimenet, stb.). 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 két gyártó az OMRON, é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. 1.2. Történeti áttekintés Az első ipari kivitelű vezérlőberendezések a 1960-as években jelentek meg. 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 (32. á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. 1. ábra 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ú (33. ábra) - PLC-t OMFB támogatással vette meg a Tanszék. Ezt a készüléket 2002-2003 tanévig használtuk az automatika szakos ágazati képzésénak laboratóriumi gyakorlataiban, valamint a szaküzemmérnöki, és egyéb tanfolyami képzésekben. 2. á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 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. 3. ábra Klöckner-Möller PS3 4. ábra Omron CQM
5. ábra Modicon Micro 612 6. ábra Siemens S5 A következő típus 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ó.
7. ábra Modicon Momentum 1.3. Programozott logikai műveletvégző egységek A programozott logikai műveletvégző berendezésekkel leggyakrabban a számítástechnikában és a különböző irányítási feladatokban találkozunk. A villamos jelekkel végzett automatikus irányítás mintegy 100 év alatt fejlődött a mai alkalmazási szintjére. A fejlődés leglátványosabb szakasza az utolsó 40 év, az integrált áramkörök megjelenésétől számítható. A program tervezésére kialakított módszerek tulajdonképpen a különböző villamos tervek készítése. A számítógép alkalmazása a tervezésben biztosítja a megbízhatóságot és a tervezés hatékonyságát. 1.3.1. Rögzített (fix) programozás Rögzített programozásnak azt a megoldást nevezzük, amelynél a programozott berendezés működését roncsolás (szétszedés) nélkül nem lehet megváltoztatni, A villamos irányítás, ezen belül a vezérlés korai változataiban a mágneskapcsolók, relék, jelző eszközök működtetésével történt. A működés parancsait kapcsolók, nyomógombok, valamint a vezérelt eszközök érintkezőinek megfelelő összekapcsolásával adják. Az elemek összekapcsolása vezetékekkel történt, az un. áramút terv (8.a.ábra) alapján. Tehát a programozás az áramutas rajz megtervezése volt. A program tárolása a huzalozás (8.b.ábra). (Esetenként az ilyen berendezéseket huzalozott programozásúnak is nevezik.)
a. b. 8. ábra A félvezető eszközök diódák, tranzisztorok, integrált áramkörök alkalmazásánál a nyomtatott áramköri lapokon történt az összekötés (huzalozás), tehát ezek a megoldások is a fix programozás csoportjába tartoznak. A tervezés végeredménye a logikai vázlat, illetve kapcsolási rajz (9.a.ábra), és a megvalósítás a nyomtatott áramköri lapon történik (9.b.ábra). A kapcsolási rajzot megvalósító IC-k a. b. 9. ábra 1.3.2. Változtatható programozás A gazdaságosabb gyártás igényelte az olyan félvezető alapú áramkörök kialakítását, amelyek alkalmazásánál az áramkörbe rögzített program megváltoztatható.
Tulajdonképpen először a memóriákhoz fejlesztettek programozható változatokat, pl. az EPROM (2.8. fejezet) amelynek tartalma újra programozható. A programozható logikai integrált áramkörök (FPGA), amelyekbe a beépített kapuk közötti kapcsolat beégethető, és változtatásnál törölhető. Ilyen megoldásban többszörös átprogramozást is meg lehet valósítani. Az elvet szemlélteti a 10. ábra. A chip -et ÉS- VAGY hálózat és Inverterek alkotják. Az ÉS kapuk előtt mátrix elrendezésű vezetékhálózat van, amelyek keresztpontjai a gyártás után még egymástól elszigeteltek. A programozás lényege, hogy a megtervezett logikai függvényt megoldó hálózatot a megfelelő keresztpontok összekötésével, beégetésével érjük el. Ezek a kötések az áramkör sérülése nélkül bonthatók (törölhető), és ezután új program égethető be. Az ábra a logikai függvényt oldja meg. K = B B + 1 3 + B1B2B3 B1B2B4 Inverterek Vezetékhálózat ÉS-VAGY hálózat Beégetett csatlakozás 10. ábra A szabad programozás Az ember gondolkodása, feladatmegoldása elemi műveletek végrehajtásának sorozatából tevődik össze. Vegyük példának három szám összeadását. Először leolvassuk az első számot, majd hozzáadjuk a második számot majd a részeredményhez adjuk a harmadik számot. Befejezésül közöljük, leírjuk (tároljuk) a végeredményt. Természetesen a részeredményeket fejben tartjuk (tároljuk), vagy ha szükséges le is írjuk.
A leírt műveletsornak megfelelően működnek a szabadon programozhatónak nevezett készülékek, amelyek műveletvégző egységekből, és memóriákból épülnek fel. A memóriába írható be a feladat megoldását előíró megszabó program és a változók aktuális értéke. A memóriatartalom bármikor, tehát rendeltetésszerű működés közben is felülírható. A megoldás viszonylag kötetlen (szabad) programozási lehetőséget biztosít, ezért nevezzük az ilyen készülékeket szabadon programozható berendezéseknek. Az alkalmazott számítógépek, ipari irányító berendezések (PLC), a hírközlés stb. eszközei mind ebbe a csoportba tartoznak. Mindezek alapvető működésmechanizmusa azonos, mégpedig abban, hogy egy adott időpillanatban csak egyetlen műveletet végez. A műveletek programozott sorozata adja a feladat megoldását. 1.3.3. Szabadon programozható logikai vezérlő Vizsgáljuk meg, hogyan alakítható ki olyan hardver (áramkör), amely két bit között programozottan hajt végre logikai, illetve bit-mozgató műveleteket. A feladatot a 11. ábrán látható elvi felépítésű áramkör megoldja. Az áramkör egy adott időben két bit közötti logikai műveletet, vagy bit mozgatást végez. Azt, hogy az egység milyen műveletet fog végezni, a programozó bemenetekre (I 0, I 1, I 2 ) adott három bites digitális információ (utasítás kód) határozza meg. Az eredmény-tároló (ET) egy D flip-flop, amely a mindenkori logikai művelet eredményét tárolja, vagy az adatmozgatás forrása, illetve célja. A programozható logikai egység (LU) az I 0, I 1, I 2 bementekre adott bitkombináció (utasítás) alapján többféle műveletet végez. A D be bemenetre érkező bitet, az ET tárolóba írja, vagy az ET -ben tárolt értéket (eredményt) a D ki kimenetre írja, vagy az ET -ben tárolt részeredmény, és a D be vezetékre érkező bit között végez logikai műveletet, és ennek eredményét írja vissza a tárolóba. A művelet ütemezését biztosítja a C p jelű órajel.
11. ábra Bitprocesszor A továbbiakban a programozható, bites logikai műveletvégző egységet bitprocesszor - nak nevezzük. Az előzőkben leírt műveleteket végreható áramkör egy lehetséges megvalósításának logikai vázlata látható a 12. ábrán. 12. ábra Először az LU jelű logikai egység működését nézzük meg. Az ET -ben tárolt érték és a D_be bemeneten lévő bit közötti logikai műveletet a kétbemenetű ÉS, illetve VAGY kapu végzi. A tagadást a kétbemenetű XOR kaput alkalmaztunk. A kapu egyik bemenetén van az adat-bit és a másikon pedig az I 0 jelű utasítás-bit. Az utóbbi 0 értékénél az adat bit változatlanul jut a kapu kimenetére, mg az 1 értéknél negálva. Két XOR kaput alkalmaztunk, hogy mind a bemeneti, mind a tárolt bitet is lehessen tagadni.
A bitprocesszor másik fő egysége a kiválasztó multiplexer. Az I 1, I 2 parancsbitek kombinációi határozzák meg, hogy melyik bemenet aktuális értéke kerül továbbításra. Ugyanez a két bit határozza meg az adattovábbítás irányát és az adat külső egységbe történő írás (WR), vagy onnan az olvasás (RD) vezérlését. A kiválasztott adat az órajel (Cp) ütemezésében egy-egy tri-state kapun keresztül íródik a belső tárolóba (ET), vagy a kimenetre (D_ki). A vezérlőjeleket a Cp ütemezi. A WR kimeneten az adat kiírásakor, míg a RD kimeneten az adat beolvasásakor jelenik meg impulzus. A működés alaposabb megismeréséhez vegyünk nézzünk néhány példát. 1. példa Logikai művelet. Az bemeneteken a következő értékek vannak: I 0 = 0, I 1 = 1, I 2 = 0, Cp = 0, D_be = x, ET = 0. Az I 0 parancsbit 0 ezért mindkét XOR kapu változatlan értékkel engedi tovább a másik bemenetére jutó adat-bitet. Az I 1 =1, I 2 =0 értékeknél az adatirány-t meghatározó ÉS kapu kimenetén 0 van. Hatására a tri-state kapuk közül a K_ki zár, míg K_be és a K_ki vezetnek. A Kiválasztó multiplexer a VAGY kapu kimenetét (a MUX 1 bemenete) kapcsolja az O kimenetre Amíg a Cp órajel 0, addig a D_ki kimenet lebeg (nagy impedancia), a RD és a WR vezérlő kimenetek 0 szintűek. Változás csak az órajel 1 szintre váltása után lesz. A RD olvasó kimenet is 1 be vált, a D_be bemeneten megjelenik az új változó, amely most legyen 1. Ekkor a VAGY művelet eredménye 1, amely érték az Eredménytároló (ET) D bemenetére jut. A bitprocesszor tehát az ET -ben tárolt érték és a Cp 1 szintjénél érkező új változó közötti VAGY műveletet hajtotta végre. A Cp jel 1 0 szintváltása után az ET tárolja a művelet eredményét. Az RD jel is visszavált 0 ba. 2. példa Adatmozgatás
Az bemeneteken a következő értékek vannak: I 0 = 1, I 1 = 1, I 2 = 1, C p = 0, D_be = x, ET = 1. Az I 0 parancsbit 1 ezért mindkét XOR kapu tagadott értékkel engedi tovább a másik bemenetére jutó adat-bitet. Az I 1 =1, I 2 =1 értékeknél az adatirány-t meghatározó ÉS kapu kimenetén 1 van. Hatására a tri-state kapuk közül a K_ki vezet, míg K_be és a K_ki zárnak. A Kiválasztó multiplexer az ET -ben tárolt értéket átvivő XOR kapu kimenetét (a MUX 3 bemenete) ahol az I 0 =1 érték miatt a tárolt érték tagadottja - kapcsolja az O kimenetre Amíg a Cp órajel 0, addig a D_ki kimenet lebeg (nagy impedancia), a RD és a WR vezérlő kimenetek 0 szintűek. Változás csak az órajel 1 szintre váltása után lesz. A WR írást vezérlő kimenet 1 be vált, és a D_ki kimeneten megjelenik az ET ben tárolt érték tagadottja. A Cp jel 1 0 szintváltása után a WR jel is visszavált 0 ba. A példákban leírt eseménysorozatot nevezzük utasítás-, vagy máskép műveleti ciklusnak. Utasítás kódok A megismert bitprocesszor nyolc műveletet végezhet, amelyeket a három utasítás-bit (I 0, I 1, I 2 ) kombinációja határoz meg. A következő táblázatban foglaltuk össze a kódkombinációkhoz tartozó műveletek leírását. kód magyarázat 000 az ET tartalma és a D_be n lévő bit közötti ES művelet eredményét az ET tárolóba írja 001 az ET tartalma és a D_be n lévő bit tagadottja közötti ES művelet eredményét az ET tárolóba írja 010 az ET tartalma és a D_be n lévő bit közötti VAGY művelet eredményét az ET tárolóba írja 011 az ET tartalma és a D_be n lévő bit tagadottja közötti VAGY művelet eredményét az ET tárolóba írja 100 az ET tárolóba írja D_be n lévő bit -et 101 az ET tárolóba írja D_be n lévő bit tagadottját 110 a D_ki re írja az ET - ben tárolt értéket 111 a G_ki re írja az ET - ben tárolt értéket tagadottját 1.3.4. Szabadon programozható logikai gép Megismertük egy bitprocesszor működését. A következőkben építsünk meg egy programozható logikai műveletvégző gépet.
A processzor mellett szükségesek memóriák, amelyek egyrészt a programot a programmemória másrészt, pedig a műveletekben használt változók értékét az adatmemória - tárolják. A program futtatásának vezérléséhez egy számlálót, amely az órajel ütemezésében választja ki a programmemória soron következő tartalmát. A gép külvilággal történő kapcsolatát illesztő egységek portok kell biztosítsák. Ezeken keresztül írhatók be a memóriába a műveletek független változói, illetve adható ki az eredmények. Röviden foglaljuk össze, hogy mit kell megadni egy program egy utasításában a tervezett művelet végrehajtásához. Szükséges a műveleti-kód (operátor kód), amely megszabja a processzor műveletét, amely még kevés. Meg kell adni a művelet tényezői t is (operandus -t). Az oprandusokat mindig valamelyik memória tárolja, ezért a tárolási hely címével hivatkozhatunk rá. Ezt a megoldást követve a programmemóriában tárolt műveleti utasítás e két részből áll. Egy logikai függvény értékének meghatározásához a következő műveleteket kell végrehajtani: 1. a független változók értékét be kell olvasni port -ról az adatmemóriába, 2. a függvényben szereplő logikai műveletek elvégzése, a műveletek rész-, és végeredményének átmeneti tárolása az adatmemóriában, 3. a végeredmény (függő változó) kiírása a port -on keresztül. A leírt műveletsorozatot ciklikusan kell ismételni. A logikai gép blokkvázlata látható a 6. ábrán. A blokkvázlat alapján kövessük a működést. A tárolt program ciklikus futását a Start jel indítja. Először a vezérlő jel a port -on keresztül beolvassa a memóriába a független változókat, és kiírja az előző ciklusban kiszámított függő változó (kat). Utána indul - a Cp hatására a számláló léptetése. A számláló kimenetei választják ki a programmemóriában tárolt, a programlépést meghatározó utasítás szót.
13. ábra A programmemória kimenetén jelenik a soron következő utasítás-kód és az ADAT cím. A Cp ütemezi a bitprocesszor működését és ezen keresztül az adat memóriából történő olvasást, írást. Az utolsó programozott művelet után a ciklus kezdődik újból. Utasítás készlet A továbbiakban határozzuk meg a logikai gép programozható műveleteit, vagyis az utasításkészletet. A processzor tehát adatmozgatást, logikai műveleteket illetve adat írás, vagy olvasás vezérlését is végez. Azt, hogy éppen melyik műveletet kell végrehajtani, azt a három bites parancs, más szóval utasítás határozza meg. Az eddigiekben az egyes utasításokat a műveletet meghatározó bináris számhoz - utasítás kódhoz - kapcsoltuk. Célszerű egy könnyebben megjegyezhető, az utasítás tartalmát is jelentő szóképet használni a leírásnál. A digitális technikában általánosan a műveletek angol elnevezéseit (pl. AND), vagy abból származó szóképeket (pl. NOR) használunk. A gép műveleteinek jelöléseinél is használjuk a leírtakat. A továbbiakban az AND a logikai És műveletet, az OR a logikai VAGY műveletet, a / vonal a bit hivatkozás előtt a tagadást, a MOV az adatmozgatást jelzi. A művelet jelölése után meg kell adni, hogy mely változókkal operandusokkal - végezzük el azt. Mint ahogyan már említettük, egy adott bit értékének felhasználásához
legcélszerűbb azt megadni, hogy az hól, milyen címen van. Tovább egyszerűsíthetjük a jelölésünket az OR és az AND műveleteknél, mivel ezeknél az egyik operandus mindig az eredménytároló (ET) tartalma. Ezért felesleges ezt mindig jelezni. A mozgatásnál első operandus a cél a második a forrás címe. A következő táblázatban foglaltuk össze a teljes utasításkészletet. A táblázat egyes oszlopai a művelet szöveges leírását, az utasítás kódolt változatát, és a magyarázatot tartalmazzák. utasítás kód magyarázat AND b_cím 000 az ET tartalma és a b_cím ről behívott bit közötti ES művelet eredményét az ET tárolóba írja AND / b_cím 001 az ET tartalma és a b_cím ről behívott bit tagadottja közötti ES művelet eredményét az ET tárolóba írja OR b_cím 010 az ET tartalma és a b_cím ről behívott bit közötti VAGY művelet eredményét az ET tárolóba írja OR / b_cím 011 az ET tartalma és a b_cím ről behívott bit tagadottja közötti VAGY művelet eredményét az ET tárolóba írja MOV ET, b_cím 100 az ET tárolóba írja b_cím ről behívott bit -et MOV ET, / az ET tárolóba írja b_cím ről behívott bit 101 b_cím tagadottját MOV b_cím, ET 110 a b_cím re írja az ET - ben tárolt értéket MOV b_cím, /ET 111 a b_cím re írja az ET - ben tárolt értéket tagadottját Megjegyzés: a b_cím az a memóriacím, ahol az adott bit van. Bemeneti változóként ez a bit a bitprocesszor D_be pontjára, míg kimeneti változóként, pedig a D_ki pontról kerül a memóriába.
2. Az alkalmazott PLC típusok összehasonlítása Az ismertetésre kerülő két készülék közül a Siemens S7-200 bővíthető további modulokkal az Omron CP1L-J típusa kompakt,. A mérési gyakorlatokon e két típus programozását ismerik meg a hallgatók. A következőkben tömören összefoglaljuk e két PLC legfontosabb tulajdonságát. 2.1. Hardver kialakítás A CP1L-J típusú kompakt PLC az OMRON CJ1 termékcsalád legkisebb tagja (14. á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. 14. ábra 20 I/O pontos készülék (CP1L-L20D) A CPU egységnek 12 bemeneti és 8 kimeneti pontja van. CP sorozatú I/O bővítő egységekkel további I/O pontok használatára van mód, összesen 60 I/O pontig. 15. ábra
(1) Memóriakazetta-nyílás Ide lehet behelyezni memóriakazettát (15). A memóriakazettákon biztonsági másolat tárolható a CP1L programokról, a paraméterekről és az adatmemóriáról. Ezenkívül a memóriakazettákkal más CP1L egységekre is átmásolhat adatokat programozási eszköz (szoftver) használata nélkül. (2) Külső USB -port Itt lehet számítógépet csatlakoztatni az eszközhöz. Számítógéppel programozni lehet a PLC-t és figyelni lehet az állapotait. (3) Analóg beállító Elforgatásával az A642 csatorna értékét lehet beállítani a 0 255 tartományban. Programozási eszköz (szoftver) használata nélküli lehet módosítani az időzítő és számláló beállításokat. (4) Külső analóg beállítások bemeneti csatlakozója Külső eszközről érkező bemenőjelet fogad 0 és 10 V között, és módosítja az A643 csatorna értékét 0 256 közötti értékre. Ez a bemenet nincs leválasztva. (5) DIP -kapcsolók Segítségükkel beállítható a felhasználói memória írásvédelme, a memóriakazettákról való automatikus letöltés és az eszközbusz használata. (6) Elem Kikapcsolt tápellátás mellett is megőrzi a belső óra és a RAM tartalmát. (7) Működésjelzők A CP1L működési állapotát mutatják. Innen olvashatók le a tápellátásra, a működési módra, a hibákra és a külső USB - kommunikációra vonatkozó állapotjelzések. (8) Tápellátási, földelési és bemeneti sorkapocs pontok Ide kell csatlakoztatni a tápfeszültség-, a föld- és a bemeneti jelek bekötéseit. (9) Bemenetjelzők Világít, ha a hozzá tartozó bemeneti jel aktív állapotú (ON).
(10) Bővítőkártya-aljzat Ide lehet behelyezni az RS-232C (16) vagy az RS-422A/485 bővítőkártyát (17). A 14, illetve a 20 I/O pontos egységeknél 1 soros kommunikációs bővítőkártya használható. (11) I/O bővítő egység csatlakozója Ide lehet csatlakoztatni a CP sorozatú bővítő egységeket és I/O bővítő egységeket. A 14, illetve 20 I/O pontos egységekhez 1 bővítő egységet lehet csatlakoztatni. A 30, illetve 40 I/O pontos egységekhez 3 bővítő egységet lehet csatlakoztatni. (12) Kimenetjelzők Világít, ha a hozzá tartozó kimeneti jel aktív állapotú (ON). (13) Külső tápellátás és kimeneti pontok bekötési pontja Külső tápellátás bekötési pontja: Az AC tápellátást használó Egységeken egy 24 V DC feszültségű, 300 ma-es maximális áramerősségű külső tápellátási csatlakozó található. Ez a bemeneti eszközök meg-táplálására használható. Kimenetek bekötési pontjai: Ide kell csatlakoztatni a kimeneti vezetékeket. (14) Rögzítő elem DIN-sínhez Ennek segítségével lehet az egységet DIN-sínre szerelni. (15) Memóriakazetta (külön rendelhető) A beépített Flash memória adatainak tárolására használható. A memóriakártyanyílásba (1) kell behelyezni. (16) RS-232C bővítőkártya A bővítőkártya-aljzatba (10) kell behelyezni. (17) RS-422A/485 bővítőkártya A bővítőkártya-aljzatba (10) kell behelyezni.
A be-, kimeneti illesztő egységek bekötési rajza a. b. 16. ábra A bemenetek egyetlen közös (COM) ponthoz képest +24 V t kell adjanak. A kimenetek négy csoportot alkotnak a 00 ill. az 01 a 02-03 és a 04-07 kimenetekhez tartozik egy-egy közös (COM) pont. A kimenet aktiválásakor +24 V t kapcsol a terhelésre. A PLC 12 bemenete az a 0.00 0.11 címtartományon érhető el. A kimenetek a 100.00 100.07 címeken kapcsolható.
A Siemens S7-200-as PLC 17. ábra A PLC be-, és kimeneti illesztő egységei 18. ábra 3. 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 IEC1131-3 szabványnak megfelelő programnyelveket 3.1. A PLC típusonkénti programozás A PLC -k fejlesztésének, illetve alkalmazásuknak kezdeti szakaszában cca. 1968 1993 között a gyártó cégek saját programozási környezetet, valamint ehhez illeszkedő nyelveket
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 a Modicon, a Siemens, az Omron cégek programozható vezérlőinek alkalmazásával, valamint programozásukkal. A PC-k megjelenése (1981) előtt a PLC -k hez 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 multi-taskos 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. 3.2. A PLC programozási nyelvek szabványosítása A PLC -k széleskörű elterjedése az automatizálásban tette szükségessé e 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 IEC1131-3 nemzetközi szabványt 1993-ban alkották meg, amely az alábbi 5 nyelvet szabványosított Ladder Diagram LD -Létra diagram szimbólumokkal Function Block Diagram FBD -Funkció blokkos programozás Instruction list IL -Utasítás lista írása Sequence Function Chart SFC -Gráf jellegű programozás Structured Text ST -Strukturált szöveg magas-szintű nyelv 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 és IL nyelveken történő programozással foglalkozunk.
3.2.1. 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 Összetett A függvény 0 értékénél aktív funkciót ellátó kimeneti szimbólumok: A 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. AA címzett bit 1-0 váltásakor a szimbólumot követő vonalon egy cciklusig értéke 1 lesz. Arutint (funkció blokk) hív. A szimbólumok soros, párhuzamos összekapcsolásához használhatók a vonalak Vizszintes csatolás Függölegescsatolás Esetenként önállóan rajzolható vonallal is történhrt az összekapcolás. A bájtos, szavas logikai-, és aritmetikai függvényeket blokk ként kell megadni. A blokk jelölése:
a blokk egy keret, amelynél kívül, és belül vannak jelölések. a blokk felett van a blokk azonosító, a keretben a funkció és a be-, kimenetek megnevezés van, a bemenetek (független változók) a keret bal oldalához csatlakoznak, 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 8. ábrán példát láthatunk blokk alkalmazására. Az á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 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. 19. á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ék 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 20. á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ó. 20. ábra
3.2.2. 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 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. Az 51. ábrán látjuk hogyan tiltott az és engedélyezett az összekötés. tiltott megengedett 21. ábra
Az 52. ábrán az LD -ben programozott feladat (50.ábra) FBD programozású változatát látjuk. 22. ábra 3.2.3. Utasítás listás IL (Instriction 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 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 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ó. 4. Programfejlesztői környezetek A fejezetben 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. Tesszük ezt azért is, mert 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. 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 Siemens S7-200 család programjainak fejlesztéséhez alkalmazható a Simatic Step7 MicroWin programcsomag. Az indítóikon A felsorolt fejlesztői környezetek mindegyikével mind az öt szabványos PLC nyelvvel (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) lehet programszegmenseket írni. További közös jellemző a jól használható un. project ablak. Az ablakban a teljes munka felépítését tekinthetjük át. Itt az egérrel kattintgatva választhatók a különböző műveletek 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 PLC mindegyikénél programja 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. 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. 5. A programfejlesztés A programfejlesztés fő lépései - a megvalósítandó feladat változóinak (be-, kimenetek, segédváltozók) meghatározása, - a programszerkezet (főprogram, szubrutinok) megtervezése, - a programírás. A következőkben összefoglaljuk a programírás lépéseit a két fejlesztői környezetben. 5.1. A programírás első lépései a Step7-MicroWin környezetben. A programfejlesztő szoftver a tálcáról indítható az ábrán látható ikonra kattintással. Az indítás után a 23. ábra szerinti kép jelenik meg a képernyőn. 23. ábra
A kép baloldalán látható a programozást segítő parancs-, és utasítás mező. Az itt felsoroltak segítségével állíthatók be a program további tulajdonságai. Első lépésként mentsük a projec-t Bemutat néven (24.ábra) 24. ábra Második lépésben kell kiválasztani a hardver konfigurációt. A parancs mező CPU.. sorárára kattintva jelenik meg a 25. ábra szerinti választó menükép. Itt adható meg a PLC típusa és a CPU verziója. 25. ábra
A programírás előkészítésének harmadik lépéseként célszerű a változókat deklarálni a Szimbólum Táblázatban. A deklarálást a parancsok Symbol Table menün belül a USER1 megnyitásával megjelenő táblázatba kell beírni 2(6.ábra). 26. ábra Megjegyzés: amennyiben programírás közben kell új változót deklarálni, akkor az onnan is elvégezhető. A Program Block menüsor (27. ábra) megnyitásával jelennek meg az programszerkezet elemei. A MAIN (OB1) a ciklikusan futó főprogram. Az SBR_0(SBR0) a szubrutinok, míg az INT_0(INT0) a megszakítás rutinok szerkesztését választja ki. 27. ábra 5.2. A programírás első lépései a CX- Programmer 8 környezetben. A programfejlesztő szoftver a tálcáról indítható az ábrán látható ikonra kattintással. Az indítás után a 28. ábra szerinti kép jelenik meg a képernyőn. 28. ábra
Első lépésként új projec-t kell nyitni A 29. ábrán látható a kiválasztás módja.. 29. ábra A kiválasztást követően a 30.a. ábrán látható módon állítható be a PLC neve és típusa. A Settings gomb megnyomása után a b. ábra szerint választható a CPU típusa. a. 30. ábra b.
A 31. ábra szemlélteti az első (00) ciklikus program kiválasztását és elnevezését. További programok hasonlóan nyithatók meg 31. ábra A programunk írásához szükséges section és a változók deklarálása a szimbólum táblázatban (32. ábra).. 32. ábra