5. Laborgyakorlat Számláló funkciók, időzítő funkciók. A gyakorlat célja A számlálók és időzítők használata gyakori a folyamatirányításban. Gondoljunk egy futószalag indításának a késleltetésére, megállításánál a kifutási idő programozására valamint a darabok számlálására. A PLC-k teljes mértékben támogatják a számlálók és időzítők használatát, a gyakorlatban megismerkedünk a Siemens PLC-k számláló és időzítő funkcióival. Elméleti bevezető Amikor számláló funkcióról beszélünk, akkor a PLC software számlálóját értjük, nem a hardware, technológiai funkcióként kiépített gyorsszámlálókat. A software számláló minden programciklusban megszámolja a felmenő éleket egy megadott memóriabiten (ami lehet egy digitális bemenet is). A hardware számláló nagyfrekvenciás jeleket is megszámol a megfelelően megépített digitális bemeneten (30kHz-ig általában, például inkrementális adó bemenet). A software számlálók a PC-memóriájában a számláló zónát írják, olvassák és csak a számlálók férnek ehhez a zónához. A Step7 programozási környezet maximum 256 számlálót engedélyez, minden PLC-nek megvan a maximum megengedett számlálója (adatlap). Minden számlálónak egy 16bites memóriazóna van lefoglalva, a számok BCD-ben vannak tárolva.
Amint látjuk a felső négy bit nincs használva és 0-999 között lehet számolni. Számláló utasítások: S_CU felfele számláló S_CD lefele számláló S_CUD le/fel számláló Példa felfele számlálóra: Ha az I124.1 bemeneten egy felmenő él van, akkor a C1 számláló értéke felvesz a 10-et. Ha az I124.2 1-re vált akkor a számláló éréke lezérózódik. A számláló értéke 1-el nő minden felmenő élén az I124.0-nak. A Q124.0 kimenet akkor 1, ha a számláló értéke nem egyenlő zéróval. A CV kimeneten hexában kapjuk az eredményt, a CV_BCD kimeneten pedig BCD-ben. Hasonló a CD-lefele számláló, az egyedüli különbség az, hogy a CD-bemeneten levő jelre lefele számol. Le/fel számláló:
A le/fel számláló ugyanúgy működik, mint a fel illetve le- számláló, a különbség az, hogy mindkét bemenet használható. Tehát az I124.0-ra felfele, az I124.1-re lefele számol. Egyszerűbb alkalmazások: --( SC ) - a számláló érték beállítása ---( CU ) - felfele számol ---( CD ) - lefele számol. A fent ismertetett műveleteke akkor használjuk, ha a programban egy bizonyos helyen beállítjuk a számláló értékét, máshol számolunk. Ugyanaz a funkció, csak egyszerűbben. STL számláló műveletek Példa: FR Free, számláló engedélyezés S Set, a kezdőérték beállítása R Reset, számláló törlése CU felfele számol CD lefele számol A fenti példa a LAD-ben ismertetett felfele számláló. STL-ben mindig arra kell vigyázni, hogy nem egy memóriabit szintje, vagy átmenete számít, hanem a RLO (Result of Logic Operation) értéke, ami a logikai műveletek eredménye. A fenti példán a L Load művelet betölti a 10-et az ACCU1-be. LC C1 betölti a C1 értékét BCD formátumban az ACCU-ba. T Transfer azt jelenti, hogy az ACCU1-ből áttölti az értéket a megfelelő változóba.
Időzítő funkciók (Timer) Az időzítők az egyik leggyakrabban használt eszközök. Hasonlóan a számlálókhoz minden időzítőnek a PLC memóriájában egy 16bites szó van lefoglalva. Az időzítők maximális számát az adatlapból kell kiolvasni. Az időzítőknek egy új változótípust vezettek be, az S5TIME nevű változót. Tehát ha időzítő értéket akarunk betölteni, vagy kiolvasni akkor egy S5TIME típusú változót használunk. Amint látjuk az alsó nyolc bit az időérték, a 12,13-as bit pedig a felbontás. Tehát az időzítés az idő érték megszorozva a felbontással. Az S5TIME használata - S5T#aH_bM_cS_dMS. Például: S5TIME#4S = 4 secundum S5t#2h_15m = 2 óra, 15 perc S5T#1H_12M_18S = 1 óra, 12 perc, 18 másodperc Időzítő típusok: S_PULSE a kimenet addig 1, amíg a az időzítés tart és a bemenet 1-es. Ha a bemenet zéróra vált de az időzítés még nem járt le akkor is a kimenet zéróra vált. S_PEXT Extended Pulse timer, hasonló a fentivel, az a különbség, hogy a kimenet addig 1- amíg az időzítés tart, még akkor is ha a bemenet zéróra vált. S_ODT On Delay Timer akkor vált 1-re a kimenet, amikor lejárt az időzítés és még tart a bementen az 1-es. S_ODTS Extended On Delay, a kimenet mindig 1-re vált, ha lejárt az időzítés
Példák: S_OFFDT Off Delay Timer a kimenet 1 ha a bemenet 1 vagy amikor időzít. Az időzítést a bemenet lemenő élére kezdi el. Az időzítés indul amikor az I124.0 1-re vált. A Q124.0 addig marad 1-ben amíg lejár az 1s-os időzítés vagy az I124.0-s bemenet 0-ra vált. Az I124.1-bemenettel újraindítjuk az időzítőt. Egyszerűbb használat: ---( SP ) - Start Pulse Timer ---( SE ) - Start Extended Pulse Timer ---( SD ) - Start On Delay Timer ---( SS ) - Start Retentive On Delay Timer ---( SF ) - Start Off Delay Timer Példa Az I125.0-n egy lemenő él elindítja az időzítést. 100ms után a T2 értéke 0. Ezt az egyszerűsített módot akkor használjuk amikor elindítjuk az időzítőt a program egy részében és máshol megvizsgáljuk az értékét és ennek függvényében hozunk döntést.
STL időzítő műveletek FR <timer> időzítő engedélyezés L <timer> - betölti a timer értéket az ACCU1-be, csak az értéket tölti be, a felbontást nem LC <timer> - betölti a timer értéket az ACCU1-be, BCD formátumban, betölti a felbontást is R <timer> - timer törlés SD <timer> - Elindítja az On Delay Timert SS <timer> - Elindítja a Retentive On Delay Timert SP <timer> - Elindítja a Pulse Timert SE <timer> - Elindítja az Extended Pulse Timert SF <timer> - Elindítja az Off Delay Timert Példa: Feladatok 1. Írjatok egy programot ami egy egyszerű léptetőmotor vezérlést végez. a. Első lépésben a sebesség állítható legyen a Clock memória szerint, a lépésszámot pedig programozhatjuk a kijelzőn. b. Egészítsétek ki a programot úgy, hogy a sebesség (a kimenet frekvenciája) programozható legyen 0-50Hz között. A motor által megtett pálya programozható legyen, tehát pozíciót adunk meg lépésben. 2. Írjatok egy programot, ami 1s-os futófényt generál 10 a digitális kimeneteken. Az első bemenet indítja, a második irányt vált, a harmadik megállítja.