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 p rog ra m o zh at ó l og i ka i ve zé r l ő k ( P L C) 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 1968ban 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 . M i a P LC 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.
K ompa kt
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.
M odulá 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 é n et i át t e ki n t é 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
csatlakoztatással hálózatban is használható.
környezetben.
Ugyanakkor
Ethernet
7.
ábra
Modicon Momentum 1 . 3 . P rog ra m o zot t l ogi k ai mű v e let v ég ző e g ys ég e k 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 ö g zí t e t t ( f i x) p r o g r a m o z á 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.
1.3.2.
ábra
V á l t o zt a t h a t ó p ro g ra m o z á 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 ÉSVAGY 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 K = B1 B 3 + B1 B 2 B 3 + B1B 2 B 4 logikai függvényt oldja meg. Inverterek
ÉS-VAGY hálózat
Vezetékhálózat
Beégetett csatlakozás
10. ábra
·
A „szabad” p rog ra mo zá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.
S z a b a d o n p r o g r a m o zh a t ó l o g i k a i v e z é r l ő
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 (I0, I1, I2) 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 I0, I1, I2 bementekre adott bitkombináció (utasítás) alapján – többféle műveletet végez. A Dbe bemenetre érkező bitet, az ET tárolóba írja, vagy az ET -ben tárolt értéket (eredményt) a Dki kimenetre írja, vagy az ET -ben tárolt részeredmény, és a Dbe 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 Cp jelű órajel.
11. ábra
·
B i t p ro c e s s zo r
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 I0 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 I1, I2 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: I0 = 0, I1 = 1, I2 = 0, Cp = 0, D_be = x, ET = 0. Az I0 parancsbit 0 ezért mindkét XOR kapu változatlan értékkel engedi tovább a másik bemenetére jutó adat-bitet. Az I1=1, I2=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: I0 = 1, I1 = 1, I2 = 1, Cp = 0, D_be = x, ET = 1. Az I0 parancsbit 1 ezért mindkét XOR kapu tagadott értékkel engedi tovább a másik bemenetére jutó adat-bitet. Az I1=1, I2=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 I0 =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 (I0, I1, I2) 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 000 001 010 011 100 101 110 111 1.3.4.
magyarázat 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 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 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 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 az ET tárolóba írja D_be – n lévő bit -et az ET tárolóba írja D_be – n lévő bit tagadottját a D_ki – re írja az ET - ben tárolt értéket a G_ki – re írja az ET - ben tárolt értéket tagadottját
S z a b a d o n p r o g r a m o zh a t ó l o g i k a i 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
AND
b_cím
000
AND
/ b_cím
001
OR
b_cím
010
OR
/ b_cím
011
MOV ET, b_cím MOV ET, / b_cím MOV b_cím, ET
100
MOV b_cím, /ET
111
101 110
magyarázat 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 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 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 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 az ET tárolóba írja b_cím – ről behívott bit -et az ET tárolóba írja b_cím – ről behívott bit tagadottját a b_cím – re írja az ET - ben tárolt értéket 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 . A z a l k a l m a zot t P LC t í p u so k ö s s zeh as o n lí t á s a 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 . H a rd v e r k i a l a kí 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 P L C – k p ro g ra mo zá si n y e lv ei 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 P L C t í p u s on k én t i p ro g ra mo zá 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 P L C p rog ra m o zá si n y e l ve k s za b vá n yo sí t á s a 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.
A l é t ra d i a g r a m a z L D ( L a d d e r D i a g r a m ) n y e l v .
3.2.1.
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 funkciót ellátó „kimeneti” szimbólumok:
Összetett
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.
A z F B D ( F u n c t i o n B l o c k D i a g ra m ) n y e l v .
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.
U t a s í t á s l i s t á s I L ( I n s t ri c t i o n L o g i c ) n y e l v
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 LD ST S R AND OR XOR NOT ADD SUB MUL DIV MOD GT GE EQ NE
Jelentés Behoz Kivisz Beír Töröl ÉS VAGY Kizáró VAGY NEM Összead Kivon Szoroz Oszt Maradék képzés Nagyobb Nagyobb - Egyenlő Egyenlő Nem Egyenlő
Módosító N N N, N (, ( N, N (, ( N, N (, ( ( ( ( ( ( ( ( ( ( (
LE LT CAL JMP RET
Kisebb - Egyenlő Kisebb Funkció hívás Feltétel nélküli ugrás Visszatérés
( ( C, CN C, CN 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 OR ANDN ST
Be Tart Ki Tart
(* A tart vezérlése *)
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 . P rog ra m f ej l e s zt ői k ö rn y e zet e k 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 p rog ra m f ej l e s zt é 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 p ro gr am í r á s e ls ő lé p és e i a S t ep 7- Mi cr o Wi n kö r n ye z et be n. 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 p ro gr am í r á s e ls ő lé p és e i a CX- P ro g r am m er 8 kö r n ye z et be n. 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.
b. 30. ábra
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