Borsoviczky Dávid Márkus Róbert
Projekt Labor 2009
. . . . . . . . . . . . . . . . .
B9000 PLC PROJEKT MUNKA 2009
Beckhoff BC9000 PLC Üzembe helyezési útmutató
1/49 oldal
Tartalomjegyzék Tartalomjegyzék 1. Bevezetés 1.1 A projekt leírása ................................................................................................... 3.oldal 2. Mi is az a PLC? 2.1 Általánosságban a PLC-kről .................................................................................. 4. oldal 3. BC9000 fő tulajdonságai 3.1 Beckhoff BC9000 vezérlőegység és I/O perifériák ................................................... 7. oldal 4. Üzembe helyezés 4.1 Busz vezérlőegység csatlakoztatása, kábelezése és kapcsolat kiépítése a PC-vel 4.1.1 Csatlakoztatás................................................................................................. 9. oldal 4.1.2 Kábelezés ....................................................................................................... 10. oldal 4.1.3 DIP kapcsolókkal történő konfigurálás ............................................................ 11. oldal 4.1.4 IP cím konfigurálás.......................................................................................... 12. oldal 4.2 I/O terminálok csatlakoztatása a vezérlőegységhez ...................................................... 15. oldal 4.3 I/O terminálok beolvasása TwinCAT System Manager segítségével............................. 17. oldal 4.4 I/O terminálok regisztereinek exportálása ..................................................................... 21. oldal 4.5 I/O terminálok regisztereinek importálása ..................................................................... 22. oldal 4.6 PLC program felépítése, változók.................................................................................. 24. oldal 4.7 Demo alkalmazás elkészítése ....................................................................................... 27. oldal 4.8 Egyszerű PLC vezérlőprogram írása ............................................................................. 36. oldal
5. Felhasznált irodalom 5.1 Irodalom jegyzék ........................................................................................................... 49. oldal
2. oldal
Bevezetés A projekt leírása A dokumentáció egy Beckhoff PLC rendszer összeszerelését, felélesztését és egy demonstrációs alkalmazás elkészítését fogja részletesen bemutatni. A megvalósítandó részfeladatok: • • • • •
A Beckhoff BC9000 Ethernet vezérlő és az adott periféria kártyák összeszerelése. Kapcsolat beállítása és élesztése a számítógép és a busz vezérlőegység között. Busz vezérlőegység és az I/O perifériák konfigurációjának beállítása és felprogramozása TwinCAT programcsomag használatával. Demonstrációs PLC program készítése az adott hardware konfigurációhoz, mely tartalmazza az összes periféria adat-, és vezérlő regisztereit. Egy egyszerű vezérlési feladat megoldása, programozása ezáltal ellenőrizve a konfiguráció helyes működését.
A dokumentációt készítették:
Név: Borsoviczky Dávid Neptun kód: C717UB Szak: Mérnök- informatikus Bsc Kar: Műszaki Informatikai Kar Egyetem: Pannon Egyetem
Név: Márkus Róbert Neptun kód: A99GJW Szak: Mérnök- informatikus Bsc Kar: Műszaki Informatikai Kar Egyetem: Pannon Egyetem
3. oldal
Mi is az a PLC? Általánosságban a PLC-kről A PLC egy programozható vezérlő. Nem PIC, nem mikrovezérlő, hanem egy készülék mikroprocesszorral (esetleg mikrovezérlővel) ki és bemenetekkel, kommunikációs porttal. A PLC-ket elsősorban az iparban használják, gépek, berendezések, gyártósorok vezérlésére. Digitális é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. A digitális kimenetek közvetve vagy közvetlenül a berendezés beavatkozó szerveire kapcsolódnak. Feladatuk a PLC belső jeleinek átalakítása a környezet számára. Alapvetően kétféle változat található: Relés kimenetű: itt a CPU egy relét vezérel, amelynek az érintkezője van kivezetve. Előnye, hogy segítségével olcsón lehet nagy áramokat kapcsolni, és az áramkörökbe bárhova beilleszthető (ha az egyik pontja nincs pl. földelve). Hátránya, hogy a megvalósítható kapcsolási frekvencia kicsi, kisebb, mint 10Hz, és a reakcióideje is nagy. Elektronikus kimenetű: itt valamilyen vezérelt félvezető elem kapcsolja a kimeneti feszültséget. Előnye, hogy viszonylag gyors kapcsolásra képes (100 Hz körül) és rövid a reakcióideje. Hátránya, hogy csak megadott helyre illeszthető, pl. az egyik pontot földelni kell, illetve nagy áramokat csak relatíve drága elemekkel lehet kapcsolni. 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). Feladatuk olyan jelek értelmezése, illetve illesztése a PLC belső szintjéhez, melyek csak két lehetséges állapotot vehetnek fel. Az iparban használatos feszültségekhez igazodva megtalálhatóak a választékban egyen- ill. váltakozófeszültséget érzékelő egységek is. A bemeneti egységek feszültségtartománya is széles skálán mozog, a 24 V-os névleges feszültségűtől a 220 V-os névleges feszültségűig. Az analóg bemenetek mérőjeleket fogadnak (nyomás, áram, feszültség, hőmérséklet, áramlás, stb.). Az analóg bemeneti egységek A/D átalakítók segítségével konvertálják digitális kóddá a bemenetre kapcsolt analóg jelet. Az ipari jeltartományokhoz illeszkedve a bemeneti feszültség vagy áramtartomány több lépcsőben változtatható. 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.). A PLC futása során számolt digitális értékeket alakítja át D/A konverter segítségével analóg jellé.
4. oldal
Általánosságban a PLC-kről 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:
•
Kompakt Minden egyben van. A PLC tartalmazza a tápegységet, van be és kimenete, 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.
•
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 PLC előnye már a huzalozott vezérlés helyettesítése esetén is nyilvánvaló, ha a vezérlés bonyolultsága meghalad egy bizonyos fokozatot. A huzalozott, relés logikai kapcsolatokhoz rengeteg relé kell, a kapcsolási rajz bonyolult, a számtalan kontaktus fokozza a kontakthibák kialakulásának esélyeit. A huzalozott vezérlés működését csak a huzalozás módosításával, lehet módosítani, ami időigényes, a berendezés termelésből való hosszabb kiesésével jár, ami költséges. PLC alkalmazásával rendszerint a PLC bemeneteire közvetlenül be vannak kötve a gépről és a kezelőtől érkező kétállapotú információk. Ezek leggyakrabban mechanikus vagy induktív végálláskapcsolók, nyomógombok, kapcsolók. A PLC kimenetei közvetlenül vagy mágneskapcsolók segítségével a berendezés mozgatását és működtetését végző beavatkozó elemekhez kapcsolódnak (villanymotorok, szelepek, visszajelző lámpák, stb.). Az eredetileg relés vezérlés összes logikai kapcsolata a PLC-n belül, szoftveresen, annak programjában jön létre. A program módosítása könnyebb, mint a relés huzalozás módosítása. Előre elkészíthető, a berendezés nem esik ki a termelésből a módosítás miatt (ha a módosítás nem olyan mértékű, hogy magát a gépet is át kell építeni). A PLC-vel vezérelt berendezéseken a hibakeresés is sokkal könnyebb. Erre a többnyire PC-n futó fejlesztői környezet mindig sok lehetőséget kínál.
5. oldal
Általánosságban a PLC-kről A PLC-k általában többféle programnyelven programozhatók. Mindegyiknél megtalálható az ún. utasításlistás programozási mód, ahol a feladatmegoldás lépéseit a PLC által értelmezhető “mondatokban” írjuk le. Ilyen módon használhatjuk ki legteljesebben a CPU által felkínált lehetőségeket. Az utasításlistás programozási mód mellett (melyet általában a gyakorlottabb programozók kedvelnek), szinte mindig megtalálható valamilyen grafikus programszerkesztési mód is. Az első lehetőség, hogy logikai elemeket (ÉS, VAGY kapukat, késleltetőket, számlálókat stb.) kapcsolhatunk össze, mintegy áramköri rajzzal definiálva a programot. Az így keletkezett rajzot egy fordítóprogram fordítja le a PLC gépi kódjára. Ez a programozási mód a digitális technikában járatosak számára kedvező. A második, grafikus lehetőséggel élve áramutas rajzokat készítünk, reléérintkezők és jelfogótekercsek alkalmazásával. Így egy már korábban jelfogós technikával megoldott feladat elvégzését programozhatjuk be könnyen és gyorsan anélkül, hogy a “régi” jelfogós kapcsolási rajzot át kellene kódolni. Itt szintén fordítóprogram végzi el az átkódolást. A PLC-k a felhasználói programot ciklikusan, újra és újra elölről futtatva hajtják végre. Ennek oka a felhasználás jellege: a vezérlési feladatokat a gép bekapcsolásától kezdve egészen a kikapcsolásáig el kell látni. Az egyes ciklusokban a felhasználói program előtt és után az operációs rendszer bizonyos részei hajtódnak végre. A logikai vezérlő bekapcsolása után azonnal egy olyan ciklusba kerül, amelyből csak kikapcsoláskor fog kilépni. A ciklus a következő 3 tevékenységből áll:
•
A bemenetek értékeinek beolvasása és tárolása a memória egy előre rögzített, a rendszer által kezelt területén. Ez a művelet azzal az előnnyel jár, hogy a felhasználói program futása közben hiába változnak meg a környezet jelei, ezt a program nem érzékeli, így nem léphetnek fel hazárdjelenségek. A memória azon területétének a neve, ahol a beolvasott értékeket a rendszer tárolja, “bemeneti folyamattükör”, angolul Process Input Image (PII).
•
A felhasználói program végrehajtása. A processzor a végrehajtandó utasításokat egymás után olvassa ki a memóriából. A felhasználói program a bemenetek értékét a PII-ból veszi, és a számolt eredményeket nem közvetlenül írja ki a kimeneti egységekre, hanem szintén a memória egy területére teszi le. Ennek a területnek a neve “kimeneti folyamattükör”, angolul Process Output Image (PIQ).
•
A PIQ-ban tárolt értékek kiíratása a kimeneti egységekre. Így minden kimenet egyszerre vált értéket, és elkerülhetők a hazárdok.
Ha időzítési vagy egyéb okokból szükség van egy bemenet adott pillanatbeli értékének használatára, vagy egy kimenet azonnali beállítására, ez megtehető a PII és a PIQ megkerülésével. Ezekre az esetekre speciális utasításokat használhatunk.
6. oldal
BC900 fő tulajdonságai Beckhoff BC9000 vezérlőegység és I/O perifériák
A BC9000 Bus Terminal vezérlő egy busz csatoló egység beépített PLC funkcióval és Ethernet interfésszel. Intelligens másodlagos eszközként használható egy nem központosított Ethernet rendszerben. Maximálisan 64 db I/O periféria csatlakoztatható, és ehhez hozzá jön még a buszlezáró terminál. K-bus kiegészítéssel, azonban akár 255 I/O periféria is csatlakoztatható. Programozásához a TwinCAT szoftver csomag használható, mely támogatja az összes szabványos (IEC 6113-3) PLC programozási nyelvet. A konfigurációs, programozó interfészen keresztül tölthető be a PLC program. A PLC program betölthető az Ethernet interfészről is. Alapértelmezett beállítás szerint a csatlakozatott I/O perifériák automatikusan hozzárendelődnek a vezérlőhöz. Minden egyes I/O periféria beállítható, hogy az adatcsere közvetlenül a fieldbus-on keresztül történjen egy magas szintű automatizált eszköz felé. A DIN sínre szerelhető rendszer szabadon bővíthető, lehetőség van a legkülönfélébb be- és kimeneti modulok tetszés szerinti utólagos csatlakoztatására. A PLC modulok a TwinCAT szoftver bázison működnek, az alkalmazói programok bármely szabványos programozási módszerrel elkészíthetők. A különféle bemeneti és kimeneti modulok segítségével az egyes érzékelő és beavatkozó eszközök csatlakoztathatók a megfelelő buszrendszerekhez ill. vezérlő egységekhez. Az IO modulok a megfelelő busz csatolókon kívül közvetlenül csatlakoztathatók a PLC modulokhoz, valamint az Embedded PC-khez.
7. oldal
Beckhoff BC9000 vezérlőegység és I/O perifériák Az IO modulok között megtalálhatók: •
Digitális bemeneti modulok
•
Digitális kimeneti modulok (beleértve a triac és léptetőmotor kimeneteket)
•
Analóg bemeneti modulok
•
Analóg kimeneti modulok
•
Speciális funkció modulok (pozíciómérés, kommunikáció)
•
Rendszer modulok (tápmodulok, véglezáró modul)
A modulok egyszerűen illeszthetők be a buszrendszerbe, a digitális modulok a beillesztés után azonnal üzemképesek. Típustól függően, az analóg perifériák regiszterei tartalmazhatnak hőmérséklet tartományokat, erősítési értékeket, linearizált karakterisztikákat. KS200 szoftver segítségével a szükséges paraméterek beállíthatóak. PLC ADAT Programozási nyelvek
BC 9000 IEC 61131-3 (IL, LD, FBD, SFC, ST)
Program memória
64/96 kbytes
Adat memória
64/128 kbytes
PLC ciklus idő
1,5 ms alatt megközelítőleg 1000 művelet (I/O ciklusok nélkül, K-buszon)
Futás idejű rendszer
1 PLC folyamat
8. oldal
Üzembe helyezés Busz vezérlőegység csatlakoztatása, kábelezése és kapcsolat kiépítése a PC-vel
Csatlakoztatás A busz vezérlőegység és az I/O perifériák egy 1,5m hosszú, 35mm széles DIN sínre (EN 50022) lesznek csatlakoztatva. Először a busz vezérlőegységet csatlakoztassuk a sínre. Ha ez megtörtént, egy tetszőleges I/O perifériát (mondjuk a KL 1114-t) helyezünk a vezérlőegység mellé. Enyhe nyomást fejtsünk ki addig, amíg egy kattanást nem hallunk, ez jelzi, hogy a csaphorony megfelelően kapcsolódott a sínre. Ezután csatlakoztassuk a busz lezáró terminált (KL 9010). Az I/O periféria azért van szükség, mert ha csak a busz lezáró terminált csatlakoztatjuk a vezérlő egység mellé, akkor tulajdonképpen reseteljük a vezérlőegységet. Így nem lehetséges IP címet rendelni a vezérlőegységnek. Egy csatlakoztatott I/O perifériával az IP cím elmenthető lesz.
Az egységek közötti kommunikáció a K-buszon keresztül fog zajlani. A K-busz érintkezők minden modul oldalán megtalálhatóak.
9. oldal
Busz vezérlőegység csatlakoztatása, kábelezése és kapcsolat kiépítése a PC-vel
Kábelezés A modulok 8-as kimeneti rugós kapcsokkal készülnek. A kör alakú csatlakozókba történik a kábelek csatlakoztatása, a négyszög alakú csatlakozók a rugós kapcsok. A kábelek csatlakoztatása az alábbiak szerint történik: •
A négyszög alakú csatlakozóba helyezett csavarhúzó segítségével fejtsünk ki egy kis lefelé irányuló nyomást a rugós kapocsra. Ekkor az alatta lévő kör alakú csatlakozó terminál nyílása elérhetővé válik.
•
Helyezzük a vezetéket a kör alakú csatlakozóba.
•
A terminál automatikusan bezárul, ha a rugós kapocsra ható nyomást megszüntetjük. Ezután a csatlakoztatott vezetéket a terminál biztosan tartja.
A vezérlőegység működéséhez 24V-os tápellátás szükséges. Valamint az I/O perifériák működéséhez szükséges tápfeszültséget is a vezérlőegységről kell biztosítani. A terep oldali feszültség az adott perifériához a periféria oldalán található késes csatlakozókon keresztül továbbítódik. A tápellátást az alábbi bekötés alapján kell elvégezni:
10. oldal
Busz vezérlőegység csatlakoztatása, kábelezése és kapcsolat kiépítés a PC-vel
DIP kapcsolókkal történő konfigurálás A következő beállítások elvégezhetők bármilyen konfigurációs szoftver használata nélkül, abban az esetben, ha busz vezérlőegység mellé csak a busz lezáró modul (KL 9010) van csatlakoztatva. Gyári beállítás visszaállítása: •
Kapcsoljuk ki a vezérlőegységet és csatlakoztassuk a busz lezáró terminált.
•
Az összes DIP kapcsolót tegyük ON állásba, és kapcsoljuk vissza a vezérlőegységet.
• •
A gyári beállítások sikeres betöltődése esetén az Error LED világít, az I/O
Run és I/O Error LED-ek felváltva villognak.
Ezután kikapcsolhatjuk a vezérlőegységet, csatlakoztathatjuk a szükséges I/O perifériákat, és folytathatjuk a munkánkat.
Boot projekt törlése: •
Kapcsoljuk ki a vezérlőegységet és csatlakoztassuk a busz lezáró terminált
•
Az első 9 DIP kapcsolót tegyük ON állásba, a 10. OFF állásba. Majd kapcsoljuk vissza a vezérlőegységet.
•
A boot projekt sikeres törlődése esetén az I/O Run és I/O Error LED-ek felváltva villognak.
•
Ezután kikapcsolhatjuk a vezérlőegységet, csatlakoztathatjuk a szükséges I/O perifériákat, és folytathatjuk a munkánkat.
Ethernet paraméterek beállítása: •
Kapcsoljuk ki a vezérlőegységet és csatlakoztassuk a busz lezáró terminált
•
Az összes DIP kapcsolót tegyük OFF állásba, és kapcsoljuk vissza a vezérlőegységet.
•
Az I/O Run és I/O Error LED-ek folyamatosan világítanak.
•
Az alábbi táblázat alapján állítsuk be a megfelelő kapcsolókat:
11. oldal
Busz vezérlőegység csatlakoztatása, kábelezése és kapcsolat kiépítés a PC-vel •
Ha beállítottuk a megfelelő értékeket, a beállítás elfogadásához, a 10. DIP kapcsolót tegyük ON állásba.
•
Az I/O Run és az I/O Error LED villogása jelzi, hogy a vezérlőegység elfogadta a beállítást.
•
Ezután kikapcsolhatjuk a vezérlőegységet, csatlakoztathatjuk a szükséges I/O perifériákat, és folytathatjuk a munkánkat.
IP cím konfigurálás Ahhoz, hogy a PC és busz vezérlőegység kommunikálni tudjon egymással, szükség van mind két fél számára egy-egy IP címre. Fontos, hogy a két IP cím ugyanazon alhálózathoz tartozzon. Ha a PLC-t és PC-t közvetlenül kötjük össze, vagy a PLC-t egy routerrel kötjük össze, szükségünk lesz egy crossover Ethernet kábelre. Mindkét eszközön be kell állítani a megfelelő IP címet. A PC IP címe: 192.168.1.1 A PLC IP címe: 192.168.1.2 Alhálózati maszk: 255.255.255.0 Első lépésként kapcsoljuk ki a busz vezérlőegységet. Fontos, hogy a vezérlőegység és busz lezáró terminál között legyen egy tetszőleges I/O terminál. A PC-t és a PLC-t Ethernet portját kössük össze egy crossover Ethernet kábellel. A PC-n az IP címet az alábbiak szerint tudjuk beállítani: •
Start menü Æ Beállítások Æ Vezérlőpult Æ Hálózati kapcsolatok ÆHelyi kapcsolatok Æ Jobb klikk Æ Tulajdonságok Æ Általános fül Æ TCP/IP protokoll Æ Tulajdonságok
•
Beírjuk a fenti értékeket, és elmentjük a változtatásokat.
12. oldal
Busz vezérlőegység csatlakoztatása, kábelezése és kapcsolat kiépítés a PC-vel A PLC IP címét többféle képen is be tudjuk állítani. Lehetőség van statikusan TcBootP Server segítségével, dinamikusan DHCP Server-el. Továbbá lehetőség van a már beállított IP cím megváltoztatására ARP segítségével.
IP cím beállítása TcBootP Server használatával Legelőször is telepítsük fel a TcBootP Server programot a számítógépünkre. A program megtalálható a mellékelt DVD-n, a Software\TwinCAT\Unsupported Utilities könyvtárban. Ha ezzel megvagyunk, tegyük a 9. DIP kapcsolót ON állásba, a 10. kapcsolót pedig OFF állásba. Az első 8 kapcsolónak az alábbi szerepe van: •
Ha az első 8 kapcsoló ON állásba van, akkor a beállított IP címet a vezérlőegység megjegyzi. A következő bekapcsolás esetén is ezt az IP címet fogja használni. Ekkor az IP címet a feljebb részletezett gyári beállítások visszaállításával lehet törölni.
•
Ha az első 8 kapcsoló OFF állásba van, akkor a beállított IP címet a vezérlőegység csak a kikapcsolásig őrzi meg. A következő bekapcsolás esetén újra IP címet kell rendelni neki.
Ezután indítsuk el a TcBootP Server programot. Nyomjuk meg a Start gombot. Néhány másodperc múlva a New MAC Address ablakban megjelenik a vezérlőegység MAC címe. A MAC címre duplán kattintva feljön egy új ablak, ahol az IP címet tudjuk beállítani. Írjuk be az IP cím mezőbe a 192.168.1.2 értéket majd nyomjuk meg az OK gombot.
13. oldal
Busz vezérlőegység csatlakoztatása, kábelezése és kapcsolat kiépítés a PC-vel Ezután nyomjuk meg újra a Start gombot, így hozzárendeljük a vezérlőegységhez az IP címet. A sikeres hozzárendelést a TCP/IP Error LED villogása jelzi.
IP cím beállítása DHCP Server használatával Ha dinamikusan szeretnénk kiosztani az IP címet a vezérlőegységnek, akkor szükségünk lesz egy DHCP Server szolgáltatást nyújtó routerre. A PLC-t a routerrel crossover Ethernet kábellel kössük össze. Ebben az esetben nem kell semmilyen szoftver feltelepíteni, csak a DIP kapcsolókat kell helyesen beállítani. A 9. DIP kapcsolót tegyük OFF állásba, a 10. kapcsolót pedig ON állásba. Az első 8 kapcsolót tegyük OFF állásba, hisz kikapcsolás után nem szükséges az IP cím megjegyzése, mert a DHCP-től úgyis minden bekapcsolás során új IP címet kapunk. Ezután a vezérlőegységhez automatikusan hozzárendelődik az IP cím. A DHCP Servernek ismernie kell a vezérlőegység MAC címét. A sikeres hozzárendelést a TCP/IP Error LED villogása jelzi.
Új IP cím beállítása ARP parancs használatával Lehetőség van az IP cím megváltoztatására anélkül is, hogy vissza kellene tölteni a gyári beállításokat. Ehhez csupán egy DOS ablakra van szükségünk. Az eljárás a következő: •
Állítsuk a 9. és 10. DIP kapcsolót OFF állásba. Az első 8 kapcsolónak nincs semmilyen cím funkciója.
•
Nyissunk meg egy DOS ablakot. Start Æ Futtatás Æ cmd .
•
Használjuk a következő parancsot: „ping <jelenlegi IP cím>”, ezzel létrehozunk egy bejegyzést a PC ARP táblájába.
•
Jelenítsük meg az ARP táblát az „ARP –a” paranccsal. Ez kiírja a vezérlőegység IP címét és MAC címét.
•
Töröljük ki a vezérlőegységre vonatkozó bejegyzést az „ARP –d <jelenlegi IP cím>” paranccsal.
•
Hozzunk létre egy új bejegyzést a használni kívánt új IP címnek a következő paranccsal „ARP –s <új IP cím> <MAC cím>”.
•
A „ping –I 123 <új IP cím>” paranccsal validáljuk az új címet.
A sikeres módosítást a TCP/IP Error LED rövid felvillanása jelzi. Ha sikeresen beállítottuk valamely módszer segítségével az IP címet, ellenőrizzük a kommunikációt a PC és a PLC között. Ehhez nyissunk meg egy DOS ablakot és pingeljük meg a PLC-t. Ilyen eredményt kell kapnunk.
14. oldal
I/O terminálok csatlakoztatása a vezérlőegységhez Miután létrejött a kapcsolat a PC és a PLC között, csatlakoztathatjuk az összes I/O perifériát a vezérlő egységhez. Célszerű legelőször is az I/O hogy a vezérlő egység mellé digitális kimeneti kártyákat, az kártyákat, a speciális funkciójú csatlakoztatjuk.
terminálokat csoportosítani. Általános módszer, először a digitális bemeneti kártyákat, majd a analóg bemeneti kártyákat, az analóg kimeneti kártyákat majd legvégül a busz lezáró terminált
Digitális bemeneti kártyák: KL1114, KL1184, KL1408, KL1512 Digitális kimeneti kártyák: KL2404, KL2408, KL2531, KL2622, KL2722 Analóg bemeneti kártyák: KL3042, KL3052, KL3062, KL3202, KL3314, KL3351, KL3361, KL3403, KL3454 Analóg kimeneti kártyák: KL4404, KL4414, KL4424 Speciális funkciójú kártyák: KL5001, KL5111, KL6031, KL6041 Rendszer modulok: KL9010, KL9110, KL9150 A kártyák nagy részének bal oldalán késes csatlakozók találhatók. Ezeknek a száma lehet egy, kettő, vagy három. Van olyan kártya amely oldalán nincs ilyen csatlakozó. Amelyik kártyán van késes csatlakozó, annak jobb oldalán érintkezők vannak kivezetve, a szomszédos kártya késes csatlakozói számára. Tehát mondjuk egy olyan kártya esetén amelynek bal oldalán 3 késes csatlakozó található, a bal oldali szomszédjának egy olyan kártyának kell lennie amelynek jobb oldalán 3 érintkező van kivezetve. A kártyák ezen a késes csatlakozón keresztül kapják a terep oldali feszültséget.
15. oldal
I/O terminálok csatlakoztatása a vezérlőegységhez Előfordulhat olyan eset amikor az egyik kártyán mondjuk csak kettő érintkező van kivezetve, de a mellette lévőnek három késes csatlakozója van. Ilyen esetben a két kártya közé egy tápmodult (KL9110, KL9150) rakhatunk, amely biztosítja a megfelelő táp ellátást és érintkezőket. Ez a tápmodul potenciálisan leválasztja a melléje bekötött modulokat a vezérlőegységtől, nem a vezérlőegységtől elvezetett tápellátás fogja biztosítani a működésüket.
Egy lehetséges csatlakoztatási sorrend: KL1114, KL1184, KL1408, KL1512, KL2404, KL2408, KL2531, KL9150, KL2722, KL2622, KL9150, KL9110, KL3042, KL3052, KL3454, KL3062, KL3202, KL3314, KL3351, KL3361, KL3403, KL9110, KL4404, KL4414, KL4424, KL5001, KL5111, KL6031, KL6041, KL9010
16. oldal
I/O terminálok beolvasása TwinCAT System Manager segítségével Miután sikeresen csatlakoztattuk a szükséges I/O perifériákat, következő lépésként be kell olvasnunk a perifériákat és a perifériák regisztereit. Ehhez szükségünk lesz a TwinCAT programcsomagra, amely magában foglalja a perifériák beolvasását végző System Manager-t, és a PLC programozáshoz szükséges szoftvert, a PLC Control-t. A szoftver megtalálható a mellékelt DVD \Software\TwinCAT könyvtárában. A TwinCAT szoftver rendszer bármely Windows kompatibilis számítógépet egy valós idejű több taskos PLC-vé alakítja. A TwinCAT egy run-time rendszer, amely valós időben hajtja végre az alkalmazói programokat, ill. fejlesztési, programozási, diagnosztikai és konfigurálási lehetőségeket biztosít. A TwinCAT pontos időbázisú determinisztikus programvégrehajtást biztosít, függetlenül a más processor task-októl, miközben jelzi a processzor leterheltséget, melyre határértéket lehet megadni, amelynek elérésekor a Windows jelzést ad. A programok indítása történhet manuálisan, vagy automatikusan, az újraindításkor a TwinCAT betölti a programot és remanens adatokat. A TwinCAT konfigurálható oly módon, hogy a valós idejű programvégrehajtás folytatódik még a Windows „Kék halál” állapotában is! A TwinCAT az IEC 61131-3 előírásainak megfelelő programozási felületet biztosít, így támogatja az összes IEC 61131-3 program nyelvet. Legelőször is telepítsük fel a TwinCAT szoftvercsomagot. Ha ezzel megvagyunk, akkor a tálca jobb szélén meg fog jelenni a TwinCAT Sys Tray ikonja.
Erre duplán kattintva megjelenik a TwinCAT System Properties ablak. Itt az AMS Router fülnél végezzük el az AMS beállításokat. Az AMS cím megegyezik a vezérlőegység IP címével, de a cím végére hozzá kell írni az 1.1-t. Nyomjuk meg az Add gombot és a megjelenő ablakot töltsük ki az alábbiak szerint.
Alkalmazzuk a beállítást és indítsuk újra a rendszert. 17. oldal
I/O terminálok beolvasása TwinCAT System Manager segítségével Indítsuk el a System Managert. A bal oldali ablakon megjelenő I/O Configuration alatt, az I/O Devices fülre jobb egér gombbal kattintsunk, és válasszuk ki az Append Device-t. Ekkor egy ilyen ablakot kell látnunk:
Itt válasszuk ki a Virtual Ethernet Interface-t. Majd a létrejött Device 1 fülre jobb egér gombbal kattintva, válasszuk a Scan Boxes opciót.
A megjelenő ablak tájékoztat arról, hogy egy darab csatlakoztatott eszközt talált, válasszuk ki és nyomjuk meg az OK gombot. Ezután automatikusan megtörténik a csatlakoztatott I/O perifériák beolvasása, és megjelenítésük a vezérlő alatt egy fa szerkezetben.
18. oldal
I/O terminálok beolvasása TwinCAT System Manager segítségével
Itt két lehetőség léphet fel. A program a perifériákat megfelelő sorrendbe olvasta be, mint ahogy a buszon is csatlakoztatva van. Ekkor nincs más dolgunk, mint az esetlegesen rosszul beazonosított kártyák típusát megváltoztatni. Például, ha a KL1114-es kártyát KL1104-nek olvasta be, akkor kattintsunk rá jobb egér gombbal és válasszuk ki a Change To Compatible Type opcióit. Majd a listából válasszuk ki a megfelelő kártya típust.
Ha végeztünk az összes kártyával, akkor töltsük be a vezérlőegységbe a helyes konfigurációt. Ehhez nyomjuk le a Set/Reset TwinCAT to Config Mode gombot.
Másik lehetőség, hogy a program nem abban a sorrendben olvasta be a kártyákat mint ahogy a sínre csatlakoztatva lett, vagy valamelyik kártyát be sem olvasta. Ekkor a beolvasott kártyákat töröljük (a busz lezáró terminált KL9010-t nem kell törölni), és manuálisan, egyesével adjuk hozzá a kártyákat a vezérlőegységhez. 19. oldal
I/O terminálok beolvasása TwinCAT System Manager segítségével Kattintsunk a BC9000 Box-ra jobb egér gombbal és válasszuk ki az Append Terminal opciót.
A megjelenő ablakból válasszuk ki az első perifériát, ami a KL1114-es. Fontos, hogy minden periféria esetén a (BC PLC) típust válasszuk (egyedül a KL9150 esetében nem lehet ezt a típust kiválasztani). Az analóg és a speciális kártyák esetén lehetőségünk van complex és compact típusok között választani. A complex típust válasszuk ((KLxxxx, complex)(BC PLC)). Az összes többi kártyát hasonlóad adjuk hozzá a rendszerhez. Ha végeztünk az összes kártyával, akkor töltsük be a vezérlőegységbe a helyes konfigurációt. Ehhez nyomjuk le a Set/Reset TwinCAT to Config Mode gombot.
20. oldal
I/O terminálok regisztereinek exportálása A kártyák helyes beolvasása és konfigurálása után lehetőségünk van a kártyák regisztereinek fájlba exportálására. Így nem kell saját magunknak, kézzel definiálni a kártyák regiszter címeit. A fájlból ezután a regiszter címeket importálni tudjuk a PLC Control szoftverbe. Kattintsunk jobb egér gombbal a BC9000 Box-ra és válasszuk ki az Export Variable Info… opciót. Mentsünk el az. exp kiterjesztésű fájlt.
Innentől a System Managerre nem lesz szükségünk.
21. oldal
I/O terminálok regisztereinek importálása Mielőtt importálnánk a regisztereket, a PLC Control-ban a PLC-t be kell állítani munkaállomásnak. Indítsuk el a PLC Controlt. A megjelenő ablakból válasszuk ki a BC via AMS típust.
A PLC programozása CFC (Continuous Function Charts) nyelven fog majd történni, így ezt az opciót válasszuk ki. A POU (programszervezési egység) típusú legyen pedig Program. Általánosságban elmondható, hogy az első POU-nak tartalmaznia kell a MAIN nevű programegységet.
Ezután nyissuk meg a Online Æ Choose Run-Time System ablakot. Válasszuk ki a PLC-t munkaállomásnak.
22. oldal
I/O terminálok regisztereinek importálása Ezután nyissuk meg a Project Æ Import… ablakot. Töltsük be az elmentett .exp fájlt. A betöltött változókat a Resources fül alatt, a Global Variables könyvtáron belül a TwinCAT_Import fájlba találjuk meg.
Először is a PlcInVar és PlcOutVar változókat töröljük, nem lesz rájuk szükség. Ezután az összes többi változót másoljuk át a Global_Variables fájlba. Ugyanis a TwinCAT_Importból a függvények, programegységek nem érik el változókat, csak ha globális változóként vannak deklarálva. Majd a TwinCAT_Import-ból törölhetjük az összes változót. Mert ha itt is szerepelnek a változok, akkor a program fordításkor hibaüzenetet kapunk, ugyanis minden változó kétszer lesz deklarálva. Mielőtt elkészítenénk a demo alkalmazást vegyük át a PLC programozásához szükséges változó típusokat, deklarációkat.
23. oldal
PLC program felépítése, változók A felhasználói program legkisebb, önállóan kezelhető szoftveregysége az úgynevezett programszervezési egység, továbbiakban a POU (Program Organisation Unit). A POU típusai: a függvény, a függvényblokk és a program, a sorrendnek megfelelően növekvő funkcionalitással. A függvény azonos bemenetekre mindig ugyanazt az eredményt, függvényértéket adja. A függvényblokknak ezzel szemben saját adatterülete (memóriája) van, melynek segítségével képes az előző állapotok információira „emlékezni” (ez az ún. instancképzés). A kimeneti értékeket így a bemeneteken kívül a tárolt adatok is befolyásolhatják, az előző állapotok függvényében más-más eredményt produkálva. A programok jelentik a felhasználói program legmagasabb hierarchia szinten lévő egységét, a programok biztosítják a többi POU-nak is a PLC-perifériákhoz való hozzáférés lehetőségét. Minden POU két részből tevődik össze: a deklarációs részből és a programtörzsből. A változók deklarálása Az IEC-1131-3 szabvány az információk tárolására és feldolgozására változókat használ. Vannak olyan PLC-rendszerek, amelyekben a változókat merkereknek ill.flageknek nevezik. A szabvány szerint a változók memóriaterületen történő elhelyezéséről már nem a programkészítőnek kell gondoskodnia, vagyis az ún. abszolút tárolási címet már nem kell manuálisan megadni. A fejlesztőrendszer feladata a változóhoz az adattípusának megfelelő méretű tárolóterület hozzárendelése. Előfordulhatnak azonban olyan esetek is, amikor szükségessé válhat a pontos memóriacím ismerete (pl, soros kommunikáció). A szabvány megengedi a felhasználónak a közvetlen memóriacím kijelölését, azzal az ajánlással, hogy ez csak a program típusú szervezési egység deklarációs részében történjen. Az IEC-1131-3 szabvány több adattípust előre definiál (BOOL, BYTE, INTEGER stb.), amelyek a bitek számában, az előjelek kezelésében stb. különbözhetnek egymástól. Lehetőség van felhasználói adattípusokat is deklarálni (struktúrák, mezők). A változót hozzárendelhetjük elemmel védett fizikai címhez is, (remanens memória) így áramkimaradás esetén megőrzi értékét. A változó érvényessége attól függ, hogy hol deklarálják. Így megkülönböztetnek globális és lokális változókat. A POU deklarációs része szöveges formátumú és független az alkalmazott programozási nyelvtől. Egy részük grafikusan is megadható (be- és kimeneti paraméterek). Példa egy tipikus változódeklarációra VAR_INPUT (*bemeneti változó*) kapcsoló : BOOL; (*bináris érték*) END_VAR VAR_OUTPUT (*kimeneti változó*) fordszam : REAL; (*valós érték*) END_VAR VAR_RETAIN (*lokális változó, elemmel pufferelt*) motorsz : INT; (*előjeles egészszám*) Motornev : STRING[10]; (*karakterlánc*) Veszki : %IX2.0 : BOOL (*a bemeneti periféria 2.0-s bitje*) END_VAR 24. oldal
PLC program felépítése, változók A programszervezési egység (POU) törzse A programszervezési egység törzse a deklarációs részt követi, a PLC által végrehajtandó parancsok leírása, jellemzően az alább felsorolt valamelyik programozási nyelv szintaktikájának megfelelően. Programozási nyelvek - létradiagram - funkció blokk diagram - utasítás lista - strukturált nyelv - Sequential Function Charts - Continuous Function Charts Változók és adattípusok A változók segítségével történik a felhasználó-specifikus adatterületek adattípus által meghatározott méretű helyfoglalása és azonosítása. A változónév: betűvel vagy aláhúzás jellel kezdődő, kis- és nagybetűk, számok, aláhúzások sorozatából áll, max. 64 karakter hosszú. Nem tartalmazhat: szóközt, ékezetes betűket és kulcsszavakat. A kis- és nagybetűk között nincs megkülönböztetés. A kezdeti értékadás := operátorral lehetséges. Amennyiben nincs kezdeti (inicializálási) értékadás, a változók a default értékeket veszik fel. A deklarációs sor végét ; jelzi. Megjegyzéseket, kommentárokat (* *) zárójelek között írhatunk. Elemi adattípusok
Közvetlen címzésű változók A fizikai címek közvetlenül is megszólíthatók a programban. (Bemenetek, kimenetek, belső változó, merkerek.) Ez történhet: • közvetlen (direkt) ábrázolású változóval; • szimbolikus nevű, közvetlen (direkt) címzésű változóval. Az ilyen változók deklarálása az AT kulcsszóval és a fizikai cím megadásával történik. A címek felépítése az alábbi táblázat szerinti. A közvetlen címeket hierarchikus címeknek is szokták nevezni, % jellel kezdődnek, amelyet egy betű követ: I (bemenet) , Q (kimenet) vagy M (változó, merker). Az ezt követő betű a cím hosszára ad információt. Az X bitcím elhagyható.
25. oldal
PLC program felépítése, változók
A bitcím 0..7 között változhat. A bájtcím gépfüggő (Összesen mennyi be/kimenet ill. merker definiálható.) Gyakran előírás, hogy a szó csak páros bájtcímen kezdődhet.
Példa közvetlen címzésű változók deklarálására VAR I1 I2 I3 I4
AT %IX0.0:BOOL; AT %IX0.1:BOOL; AT %IX0.2:BOOL; AT %IX0.3:BOOL;
PIROS AT %QX0.0:BOOL; SARGA AT %QX0.1:BOOL; ZOLD AT %QX0.2:BOOL; Bl: Blinker; T:TON; T2:TON; END_VAR
26. oldal
Demo alkalmazás elkészítése A demo alkalmazás célja, hogy az összes I/O periféria regiszteréhez globális változókat rendeljünk. A változók bármely program egységből elérhetőek, és használhatóak legyenek. Először is csoportosítsuk az importált regisztereket a könnyebb átláthatóság kedvéért. Az első csoportba a digitális bementi regiszterek kerülnek. Ide vesszük a digitális kimeneti kártyákba található bemeneti regisztereket is, ugyanis egy digitális/analóg kimeneti kártyában nem csak kimeneti regiszterek lehetnek (valamint egy bementi digitális/analóg kártyában sem csak bementi regiszterek lehetnek). A bemeneti regisztereket AT%I jelzi. Ebbe a csoportba kerül a KL1114, KL1184, KL1408, KL1512 és a KL2531 idetartozó regiszterei.
A következő csoport a digitális kimeneti regiszterek. A kimenetei regisztereket AT%Q jelzi. Ebbe a csoportba kerül a KL1512, KL2531, KL2404, KL2408, KL2722, KL 2622.
27. oldal
Demo alkalmazás elkészítése A következő csoport az analóg bemeneti regiszterek. A bemeneti regisztereket AT%I jelzi. Ebbe a csoportba kerül a KL3042, KL3052, KL3454, KL3062, KL3202, KL3314, KL3351, KL3361, KL3403, KL4404, KL4414, KL4424.
28. oldal
Demo alkalmazás elkészítése A következő csoport az analóg kimeneti regiszterek. A kimeneti regisztereket AT%Q jelzi. Ebbe a csoportba kerül a KL3042, KL3052, KL3454, KL3062, KL3202, KL3314, KL3351, KL3361, KL3403, KL4404, KL4414, KL4424.
29. oldal
Demo alkalmazás elkészítése A következő csoport a speciális modulok bemeneti regiszterei. A bemeneti regisztereket AT%I jelzi. Ebbe a csoportba kerül a KL5001, KL5111, KL6031, KL6041, KL9110.
30. oldal
Demo alkalmazás elkészítése A következő csoport a speciális modulok kimeneti regiszterei. A kimeneti regisztereket AT%Q jelzi. Ebbe a csoportba kerül a KL5001, KL5111, KL6031, KL6041, KL9110.
31. oldal
Demo alkalmazás elkészítése Most, hogy rendelkezünk az összes regiszter címmel, elkészíthetjük saját globális változóinkat. Az összes általunk létrehozott változó merker típusú lesz így az AT% után az M betű fog állni. Változóink típusa 4 féle lehet. Egy bites BOOL, egy bájtos előjelnélküli rövid integer (USINT), 2 bájtos előjelnélküli integer (UINT), és 2 bájtos előjeles integer (INT). A 2 bájtos változók mindig páros bájt címen kezdődnek. A deklarálás sorrendje az előbb felállított sorrend szerint fog történi. Bár a program, a DIN sínen elől lévő, egyes digitális bemeneti/kimeneti kártyák regisztereinek a legnagyobb fizikai címet osztotta ki, mi nyugodtan kezdhetjük ezekkel a deklarálást. Mivel közel 300 változó deklarálását kell elvégezni, nem térünk ki minden egyes változó deklarálása, néhány példa alapján a többi is elvégezhető lesz. Nézzük meg a KL1114 változóinak deklarálását: A program a következő címeket rendelte a modulhoz. Minden regisztere 1 bites BOOL típusú. Term_2_KL1114_1_Input Term_2_KL1114_2_Input Term_2_KL1114_3_Input Term_2_KL1114_4_Input
AT %IX216.0: BOOL; AT %IX216.1: BOOL; AT %IX216.2: BOOL; AT %IX216.3: BOOL;
A változók deklarálása a 0. bájt címen fog kezdődni. Egy bájt ugye 8 bit, a bitek 0..7 címezhetők. Az első bájt első bitje a 0.0 címen lesz tárolva. Tehát a KL1114 első bemenete ehhez a címhez lesz rendelve: AT%MX0.0: BOOL; A második bemenete az eggyel nagyobb bit címhez lesz rendelve: MX%0.1:, és így tovább. Változó névnek bármilyen nevet megadhatunk. Egy lehetséges deklarálás: K_1114_1_I AT %MX0.0: BOOL; K_1114_2_I AT %MX0.1: BOOL; K_1114_3_I AT %MX0.2: BOOL; K_1114_4_I AT %MX0.3: BOOL; A következő KL1184-es kártya regisztereinek címét közvetlenül folytatta a program a KL1114 4. bemenetének címe után. Term_3_KL1184_1_Input AT %IX216.4: BOOL; Mi is tegyünk így. A 0.3 bit cím után a 0.4 jön, ehhez a címhez lesz rendelve a KL1184 első bemenete. K_1184_1_I AT %MX0.4: BOOL; K_1184_2_I AT %MX0.5: BOOL; K_1184_3_I AT %MX0.6: BOOL; K_1184_4_I AT %MX0.7: BOOL; Egy bájtnyi memória le lett foglalva ennek a 8 regiszternek. A következő foglalásokat már az 1. bájt címen kell elvégezni. Tehát a KL1408-s kártya 8 bemenete a %MX1.0 - %MX1.7 címekhez lesz rendelve. A következő kártya a KL1512-s, regisztereinek típusa USINT, UINT. Korábban szóvolt arról, hogy 2 bájt méretű változók csak páros bájt címen kezdődhetnek. Ez a regiszter címekben is megfigyelhető. Term_5_KL1512_1_State Term_5_KL1512_1_Data_In Term_5_KL1512_2_State Term_5_KL1512_2_Data_In
AT %IB0: USINT; AT %IB2: UINT; AT %IB4: USINT; AT %IB6: UINT;
32. oldal
Demo alkalmazás elkészítése Az első bemenet State regisztere a 0. bájt címen kezdődik. Típusa USINT, azaz mérete 1 bájt. A következő regiszter címe kezdődhetne az 1-es bájt címen, de a DATA-In regiszter mérete 2 bájt, így csak páros bájt címen kezdődhet. Ezért kezdődik a %IB2 címen. A következő regiszter címe a 4-es bájt címen kezdőik hisz 2+2=4. Így tovább az összes többi kártya esetén. A fentiek miatt a változó deklarációnk is hasonlóan fog kinézni: K_1512_1_Se K_1512_1_DI K_1512_2_Se K_1512_2_DI
AT %MB2: USINT; AT %MB4: UINT; AT %MB6: USINT; AT %MB8: UINT;
A következő kártya a 2531-s. Deklarációja így nézhet ki: K_2531_Ss AT %MB10: USINT; K_2531_P AT %MB12: UINT; K_2531_XSs AT %MB14: UINT; Ezzel elvégeztük az első csoport deklarációját. A következő csoport a digitális kimeneti változók. Érdemes az egyes csoportok között néhány bájtnyi üres helyet hagyni, de nem kötelező. Például ugye a digitális bemeneti változók utolsó deklarációja a K_2531_XSs AT %MB14: UINT; volt. Ennek mérete ugye 2 bájt, így a következő cím kezdődhetne az %MB16-os bájt címen. De itt kihagyunk 2 bájtnyi helyet, a következő foglalás a K_1512_1_C AT %MB18: USINT; címen fog kezdődni. Előfordulhat olyan eset, hogy a program egy regiszter címe után bizonyos méretű helyet üresen hagy, és csak ezután következik a soron következő regiszter címe. Például : Term_29_KL5001_A_RegData AT %QB154: UINT; Term_30_KL5111_Ctrl AT %QB160: USINT; A RegData 2 bájtos regiszter, a következő regiszter cím kezdődhetne a %QB156os címen, de program a %QB160-as címet rendelte hozzá. 4 bájtnyi helyet szabadon hagyott. Ebben az esetben mi is hasonlóan járjunk el. K_5001_A_RD AT %MB384: UINT; K_5111_C AT %MB390: USINT; A K_5111_C változó címe kezdődhetne a %MB386-os címen, de mi is hagyjunk ki 4 bájtnyi helyet, így a %MB390-es címhez rendeljük a változót. Két egymást követő 1 bájt méretű változó esetén (USINT) nem kell páros címen kezdődnie a következő változónak. K_6031_DI_7 AT %MB341: USINT; K_6031_DI_8 AT %MB342: USINT; Ezen példák segítségével az összes többi változó deklarálás hasonló képen elvégezhető.
33. oldal
Demo alkalmazás elkészítése Következő feladatunk a változók hozzárendelése a regiszterekhez, mivel eddig csak helyet foglaltunk nekik a memóriában. A hozzárendelést grafikusan, CFC PLC programozás nyelv használatával fogjuk elvégezni. A CFC egy grafikus PLC programozási nyelv, segítségével egyetlen kódsor írása nélkül, csupán grafikus elemekkel, megvalósíthatunk PLC vezérlési feladatokat. A fordítás során a fordító automatikusan előállítja szükséges programkódot. Először is lépjünk át a MAIN (PRG) programegység ablakába. A változók hozzárendeléshez csupán két elemre lesz szükségünk, az Input és az Output Box. Ezek fölül, az Eszköztáron találhatók meg.
A hozzárendelést ugyanolyan sorrendben végezzük el, mint a deklarációt. Mivel a KL1114 egy bemeneti kártya, így a kártya regisztere lesz az Input, a változónk pedig az Output. Válasszuk ki az Input Box-ot és helyezzük el a munkaterületen. A Box belsejében 3 kérdőjel jelenik meg. Ide kell beírnunk a regiszter nevét. Kattintsuk a 3 kérdőjelre és nyomjuk le az F2 gombot. A megjelenő listából, a globális változók közül válasszuk ki a Term_2_KL1114_Input (BOOL) regisztert és nyomjuk le az OK gombot.
Ezután válasszuk ki az Output Box-ot és helyezzük el a munkaterületen. A Box belsejében 3 kérdőjel jelenik meg. Ide kell beírnunk a változónk nevét. Kattintsuk a 3 kérdőjelre és nyomjuk le az F2 gombot. A megjelenő listából, a globális változók közül válasszuk ki a K_1114_I (BOOL) változót és nyomjuk le az OK gombot.
34. oldal
Demo alkalmazás elkészítése Ezután nincs más dolgunk, mint az Input Box kimenetét összekötni az Output Box bemenetével. A Box-ba lévő szám a program végrehajtási sorrendjét jelenti. Ezzel a regisztert hozzárendeltük a változónkhoz.
Hasonlóan járjunk el a többi bemeneti regiszter esetén is. Abban az esetben, ha a regiszter kimeneti regiszter, akkor a változónk lesz az Input és a regiszter az Output. Egy példa a KL1512 Control regisztere:
Hasonlóan járjunk el a többi kimeneti regiszter esetén is. A (nem teljes) végeredmény:
35. oldal
Egyszerű PLC vezérlőprogram írása Utolsó feladatunk egy egyszerű teszt program írása, hogy leellenőrizzük a konfiguráció helyességét, a regiszterek megfelelő beolvasását, és a változók helyes deklarálását. A feladat a következő: Garázs szelőztetés ellenőrzése. Egy mélygarázsba 4 db szellőztetőt építettek be. A szellőztetés felügyeletét a szellőzővezetékekben lévő áramlásjelzők látják el. A garázs bejáratánál a szellőztetéstől függően 3 jelzőlámpa ad tájékoztatást a szellőztetők állapotáról. Jelzések: • Ha négy, vagy három ventilátor működik, ezek gondoskodnak a megfelelő szellőzésről, és a zöld lámpa világít. •
Ha két ventilátor működik a sárga lámpa világít.
•
Ha kettőnél kevesebb ventilátor működik, akkor a piros lámpa villog.
A 4 érzékelőt 4 nyomógombbal fogjuk szimulálni. Ha az adott nyomógomb le van nyomva, az azt jelenti, hogy az adott ventilátor megfelelően működik. Ha nincs lenyomva, az adott ventilátor nem működik. A lámpák helyett LED-eket használunk. A feladathoz 2 I/O terminált fogunk használni. A nyomógombok állapotának vizsgálatára a KL1114 digitális bementi kártyát használjuk, a LED-ek bekapcsolását és vezérlését a KL2404 digitális kimeneti kártya fogja végezni. Összerendelési táblázat Bemenetek
Jel
Logikai hozzárendelés
Cím
1. áramlásjelző
K_1114_1_I
1. ventilátor üzemel K_1114_1_I=1
MX0.1
2. áramlásjelző
K_1114_2_I
2. ventilátor üzemel K_1114_2_I=1
MX0.2
3. áramlásjelző
K_1114_3_I
3. ventilátor üzemel K_1114_3_I=1
MX0.3
4. áramlásjelző
K_1114_4_I
4. ventilátor üzemel K_1114_4_I=1
MX0.4
Piros LED
K_2404_1_O
Világít, ha K_2404_1_O=1
MX32.0
Sárga LED
K_2404_2_O
Világít, ha K_2404_2_O=1
MX32.0
Zöld LED
K_2404_3_O
Világít, ha K_2404_3_O=1
MX32.0
Kimenetek
Ezután elkészítjük a függvénytáblázatot. 4 bement esetén 16 kimeneti kombináció lehetséges, így a táblázatnak 16 sora lesz. A lehetséges bemeneti kombinációkat növekvő sorrendben írjuk fel. Majd minden sorban megnézzük, hogy az adott bemeneti értékek esetén mely kimenet értéke lesz igaz. Például, ha a K_1114_2_I és K_1114_3_I változók értéke igaz, akkor a K_2404_2_O változó értéke igaz lesz. Magyarul, ha két gomb van lenyomva, akkor a sárga LED fog világítani.
36. oldal
Egyszerű PLC vezérlőprogram írása Érték
K_1114_1_I
K_1114_1_I
K_1114_1_I
K_1114_1_I
P
S
Z
0 1
0 0
0 0
0 0
0 1
1 1
0 0
0 0
2
0
0
1
0
1
0
0
3
0
0
1
1
0
1
0
4
0
1
0
0
1
0
0
5
0
1
0
1
0
1
0
6
0
1
1
0
0
1
0
7
0
1
1
1
0
0
1
8
1
0
0
0
1
0
0 0
9
1
0
0
1
0
1
10
1
0
1
0
0
1
0
11
1
0
1
1
0
0
1
12
1
1
0
0
0
1
0
13
1
1
0
1
0
0
1
14
1
1
1
0
0
0
1
15
1
1
1
1
0
0
1
Ezután Karnaugh-tábla segítségével minimalizáljuk a logikai függvényeket. Piros:
_ _ _ _ _ _ _ _ _ _ _ _ P= (I1 & I3 & I4) + (I1 & I2 & I3) + (I1 & I2 & I4) + (I2 & I3 & I4)
37. oldal
Egyszerű PLC vezérlőprogram írása Sárga:
_ _ _ _ _ _ _ _ S= (I1 & I2 & I3 & I4) + (I1 & I2 & I3 & I4) + (I1 & I2 & I3 & I4) + (I1 & I2 & I3 & I4) + _ _ _ _ (I1 & I2 & I3 & I4) + (I1 & I2 & I3 & I4)
Zöld:
Z= (I1 & I2 & I4) + (I1 & I2 & I3) + (I1 & I3 & I4) + (I2 & I3 & I4) A kiszámított logikai függvényeket, a CFC nyelv grafikus lehetőségét kihasználva, AND és OR kapuk segítségével fogjuk megvalósítani. A megírt demo alkalmazást fogjuk kibővíteni, illetve felhasználni. Nyissuk meg MAIN (PRG)-t, a változó hozzárendelések alatt készítsük el a programunkat.
38. oldal
Egyszerű PLC vezérlőprogram írása Először a Piros LED vezérlését fogjuk megvalósítani. _ _ _ _ _ _ _ _ _ _ _ _ P= (I1 & I3 & I4) + (I1 & I2 & I3) + (I1 & I2 & I4) + (I2 & I3 & I4) A logikai függvény alapján szükségünk lesz 4 db 3 bemenetű AND kapura és 1 db 4 bemenetű OR kapura. Helyezzük el az AND kapukat. Ezt fölül az Eszköztáron találjuk meg.
A Box alapértelmezettként AND kaput reprezentál. Ebből helyezzünk el egymás alá 4db-ot. Mint látható alapértelmezettként az AND kapunak 2 bemenete van, de nekünk 3 bemenetű AND kapura van szükségünk. Így egy plusz bemenetet kell definiálunk, ehhez kattintsunk jobb egér gombbal a kapura és válasszuk ki az Input of box opciót. Ezt végezzük el mind a 4 AND kapu esetén.
Ezt követően helyezzük el az OR kaput. Ugyanúgy mind az AND kapu esetén válasszuk ki az Eszköztárból a Box elemet. Azonban ez ugye egy AND, de nekünk OR kapura van szükségünk. Ehhez kattintsunk a kapu AND címkéjére és nyomjuk le az F2 gombot. A megjelenő listából válasszuk ki az FBD Operators közül az OR függvényt.
39. oldal
Egyszerű PLC vezérlőprogram írása Ebben az esetben is a kapunak csak két bemenet van. Adjunk hozzá még 2 bemenetet a fent említett módszer szerint. Definiáljuk a kimenetet. Ehhez szükségünk lesz egy Output Box-ra. A piros LEDhez tarozó változónk a K_2404_1_O, ezt rendeljük az Output Box-hoz a demo alkalmazás készítése során ismertetett módszer szerint.
Az AND kapuk bemenetére a megfelelő változókat kössük az Input Box segítségével. _ _ _ Például az első AND kapura a (I1 & I3 & I4) bemeneteket kell kötni, tehát a K_1114_1_I-t, K_1114_3_I-t, K_1114_4_I-t.
Azonban ezeket a változókat a függvény szerint negált értékkel kell venni. Ezt a következő képpen tudjuk megtenni. Kattintsunk az Input Box kimenetére majd az Eszköztárból válasszuk ki a Negation elemet. Ekkor a kimeneten megjelenik a negáló jel. Ezt az összes negált érték esetén végezzük el.
A végeredmény:
40. oldal
Egyszerű PLC vezérlőprogram írása Ebben a formában, megfelelő bemenet esetén a piros LEDünk világítani fog, de a feladtunk a LED villogtatása. Ehhez 2 db időzítőre lesz szükségünk. Az IEC-1131-3 szabvány számos függvényblokkot definiál, ezzel biztosítva, hogy rendelkezésére álljanak a legfontosabb, tárolási tulajdonsággal rendelkező függvényblokkok. A szabványban leírt függvényblokkok az alábbi öt csoportba sorolhatók: • Bistabil elemek (flip-flopok, R/S-tárolók). • Élkiértékelők. • Számlálók. • Időzítők. • Kommunikációs függvényblokkok. Bekapcsolás-késleltetéses időzítőt fogunk használni.
Az időzítő viselkedését bemutató idődiagram:
A be/kimeneti jelek értelmezése:
41. oldal
Egyszerű PLC vezérlőprogram írása A villogtatásért felelős alprogramot saját funkció blokk írásával valósítjuk meg. Olyan mintha egy programozási nyelvbe saját függvényt írnánk egy sokszor ismétlődő feladat elvégzésére. Ahogy a függvénynek is, úgy a funkció blokknak is paramétereket adhatunk át. Hozzunk létre egy saját funkció blokkot. Ehhez kattintsunk jobb egér gombbal a program fájljainkat összefogó POUs könyvtárra, és válasszuk ki az Add Object opciót.
A megjelenő ablakban válasszuk ki a POU típusának a Function Block-ot, programozási nyelvnek az FBD-t, a funkció blokk neve legyen pedig Blinker.
Deklaráljuk a szükséges változókat. 3 bemenetet (paramétert) fog kapni a funkció blokkunk. Az engedélyező Enable jelet (BOOL típusú), a világítás hosszát másodpercben jelző High jelet (TIME típusú), és a két világítás között eltelt idő hosszát szintén másodpercben jelző Low jelet (TIME típusú). A kimenet, Out értéke határozza meg a világítás be- ill. kikapcsolását, típusa BOOL. Szükségünk lesz 2 belső változóra az időzítők kezelésére. Típusuk TON. FUNCTION_BLOCK Blinker VAR_INPUT Enable: BOOL; Low: TIME High: TIME; END_VAR VAR_OUTPUT Out: BOOL; END_VAR VAR ton_1: TON; ton_2: TON; END_VAR 42. oldal
Egyszerű PLC vezérlőprogram írása Az első sorban megjelenő kis négyzetre kattintva, majd az Eszköztáron Box elemet kiválasztva egy AND kaput kapunk. Nekünk azonban egy időzítőre van szükségünk ezért, kattintsunk az AND címkére és nyomjuk le az F2-t.
A megjelenő ablakból válasszuk ki a Standard Function Blocks közül, a TON Timer-t.
Az IN bemenetre adjuk meg a ton_2 kimenetét, azaz ton_2.Q-t. A PT bementre a High változót. Magának az időzítőnek pedig a ton_1 változót.
Ezután hozzunk létre egy új sort, a sort jelző szám alatti terültre, jobb egér gombbal történő kattintás után előjövő menüből a Network (after) opciót választva.
43. oldal
Egyszerű PLC vezérlőprogram írása A második sorban is hasonlóan járjunk el. Hozzuk létre a második időzítőt. IN bemenetére a ton_1 kimenete kerüljön negálva, PT bemenetére a Low változó, magának az időzítőnek pedig a ton_2 változót adjuk meg.
Hozzunk létre egy harmadik sort. Ebbe kerüljön egy AND kapu aminek a két bemenetére az Enable és a ton_2.Q változók legyenek bekötve. Kimenetet, az AND kapu végére kattintva előjövő menüből az Assign opció kiválasztásával tudunk rendelni. A kimenetre az Out változót helyezzük.
Végeredmény:
44. oldal
Egyszerű PLC vezérlőprogram írása Ezután már csak „meg kell hívnunk” a funkció blokkot a MAIN-ből. Ehhez az Eszköztárból válasszuk ki a Box elemet, és helyezzük el az OR kapu alatt. Típusának adjuk meg a Blinker funkció blokkot.
Deklaráljunk egy belső változót a Blinker-hez. Legyen a neve BI, típusa Blinker. PROGRAM MAIN VAR Bl: Blinker; END_VAR Az engedélyező bemenetre, Enable kössük az OR kapu kimenetét, az Out kimenetet kössük össze a K_2404_1_O Output Box bemenetével, a Low és High bemenetre pedig kössünk egy-egy Input Box-ot. Az Input Box-ok értékét a következő képpen állítsuk be. Kattintsunk a kérdőjelekre, töröljük ki és adjuk meg a T#1s értéket. Azaz a LED-ünk 1 másodpercig fog világítani, majd 1 másodpercre kialszik, ezután megint 1 másodpercig fog világítani, és így tovább, amíg más bemenet nem érkezik.
45. oldal
Egyszerű PLC vezérlőprogram írása Az időzítők működése a következő: •
A Timerek belső változói alapértelmezettként 0-ból indulnak.
•
Mivel ton_2 bemenetére ton_1 negált kimenete van kötve (ami 0, negálva 1) így ton_2 elindul és Low ideig 0-ban tartja a kimenetét.
•
Ha lejár, a kimenetére 1 kerül, és ezzel együtt bekapcsol Out is, amennyiben az Enable jel 1 értékű. Valamint ton_1 időzítője is elindul mivel ton_2 kimenete van rákötve.
•
ton_1 High ideig tartja a kimenetét 0-ban, ha le letelt kimenete 1 lesz, ezzel együtt kikapcsolja a ton_2-t és Out-ot is. Mivel ton_2 0 lesz így ton_1 is azonnal 0 lesz.
•
Mivel ton_1 0, így ton_2 újra bekapcsol, és ismétlődik az egész folyamat előről.
Ezután készítsük el a sárga LED vezérlését ellátó logikai kapcsolást az S logikai függvény alapján. Hasonló képpen járjunk el, mint a piros LED esetén, annyi különbséggel, hogy ennek nem kell villognia, így a Blinker funkció blokkra nem lesz szükség.
46. oldal
Egyszerű PLC vezérlőprogram írása Legvégül készítsük el a zöld LED vezérlését ellátó logikai kapcsolást a Z logikai függvény alapján. Hasonló képpen járjunk el, mint a sárga piros LED esetén.
Ha mindennel megvagyunk már csak le kell fordítanunk a programunkat. Ehhez válasszuk ki a Project menüpontból a Build opciót. A program lefordul és tájékoztatást kapunk az esetleges előforduló hibákról. Az elkészített programot a PLC-be így tudjuk betölteni: Online Æ Login A felugró ablak tájékoztat arról, hogy a vezérlőben jelenleg nincs semmilyen program betöltve, és megkérdezi, hogy betöltjük-e az új programot. Nyomjuk meg az OK gombot.
Ezután Online Æ Run és a PLC-n már fut is a program. A programot az Online Æ Stop majd Online Æ Logut opciókkal lehet leállítani. Ha az szeretnénk, hogy a következő bekapcsolás alkalmával is megmaradjon a PLC-ben a programunk, akkor válasszuk az Online Æ Create Bootproject opciót.
47. oldal
Egyszerű PLC vezérlőprogram írása Kapcsolási rajz:
48. oldal
Felhasznált irodalom Irodalomjegyzék
Jancskárné Anweiler Ildikó: PLC programozás az IEC 1131-3 szabvány szerint BME Közlekedésautomatikai Tanszék: Programozható logikai vezérlők http://szirty.uw.hu http://www.takacszoltan.eu/elektronikacd/Y_data/folap.htm http://www.brandyman.extra.hu http://www.plcs.net
49. oldal