Mártódaru szimuláció


Megint egy szimuláció, megint HMI-vel, a "szokott" módon. Ezúttal egy mártódaru (mártogató), aminek a feladata munkadarabokat egymás után különböző folyadékokba mártani. A gyakorlatban felületkezelésre, galvanizálásra használnak ilyen berendezést. Ebben a gyakorló szimulációban a gép le van egyszerűsítve.
A szimulációban a gépet WinCC Flexible runtime jeleníti meg és S7 PLCSIM-en futó program mozgatja. A gépre lehet programot írni, ami mozgatja, mint egy igazi berendezésre. Kezdőknek ajánlom, a project célja a gyakorlás.

A gép

Egy emelő műből áll, ami egy ketrecet vagy kampókat tartalmazó tartót emel fel. Ezen a tartón illetve ketrecben van a kezelendő termék. Az emelő mű vízszintesen egy pályán tud mozogni, ami alatt sorban kádakban vegyszerek és öblítőfolyadékok vannak. A pálya elején egy berakodó, a végén egy kirakodó állomás van. Itt nincs kád, ide az emelő mű leengedi a ketrecet, ahol ki illetve berakodják a kezelendő terméket.
A berendezésen tehát két darab két irányú motorindításos mozgatás van:
Az emelő és annak vízszintes mozgatásánál minden pozícióhoz tartozik egy-egy végálláskapcsoló. A PLC ezek állapotából tudja hogy a gép mozgó részei milyen pozícióban vannak.
Az alábbi ábra mutatja a berendezés vázlatát (sokaknak ismerős lesz):



S1, S2, S3, S4, S5, S6 végálláskapcsolók az oldal irányú mozgatás pozícióit érzékelik, minden állomáson, ahol a mozgatást meg kell állítani, van egy.
Az S7 és S8 az emelő mű függőleges véghelyzeteit érzékelik.
Az M1 motor mozgatja vízszintesen előre - hátra, az M2 motor pedig függőlegesen, a ketrecet.
A géphez tartozik két nyomógomb is, SBe és SR.

A gép működése

Alaphelyzetben az S1 pozícióban várakozik, az emelő mű lent (S8) helyzetben van. Ekkor a kezelő megtölti a mártóketrecet munkadarabokkal. Amikor készen van, megnyomja az SBe nyomógombot.
Az emelő mű felemeli a ketrecet S7 pozícióba, majd előre megy S2 pozícióba marató kád fölé, ahol a ketrecet leengedi S8-ig.
Amikor az emelő mű S8 pozícióba (lent) ért, elindul egy időzítő. Az időzítő leteltekor a ketrecet felemeli S7 pozícióba, majd előre megy S2-ig (öblítés), ahol ismét leengedi S8-ig, majd itt ismét vár, de egy másik időtartamig.
A fenti módon a ketrecet egymás után belemártja az összes kádba, mindegyik kádnál més, előre megadott ideig várakozik lent helyzetben. Az utolsó kád után a kirakodás (S6) pozícióba megy, ahol az emelő mű a ketrecet leengedi, majd ottmarad. A kezelő kiszedi a terméket a ketrecből. Amikor készen van, megnyomja az SR gombot.
Ekkor a ketrecet felemeli hátramegy a berakodás (S1) pozícióba, ahol a ketrecet leengedi S8-ig, majd ott megáll.
Az SBe gombra a folyamat újraindul.

A szimuláció működése  

A szimuláció S7 300/400 PLC szimulátoron fut (PLCSIM) a berendezés sematikus ábráját WinCC Flexible 2008 runtime jeleníti meg és a mozgó részeket mozgatja amikor a megfelelő kimeneteket a PLC szimulátoron futó program bekapcsolja. Amikor a mozgó részek a sémán is látható pozícióba kerülnek, akkor a végállásokhoz rendelt bemeneteket aktiválja.
A szimuláció használatához tehát szükség van a Step7 V5.3, WinCC Flexible 2007 SP2, WinCC Flexible 2007 RT és PLCSIM szoftverekre. A szimuláció lényegében egy Step7 project, ami tartalmaz egy WinCC projectet, ez megjeleníti a berendezést sematikusan. Tartalmaz továbbá néhány S7 program blokkot és egy adatblokkot, ami a sematikus ábrán mozgatja a gép mozgó részeit és kezeli a bemeneteket.



FC 254 végzi a szimulációt.
FC253 egy segédfunkciót tartalmaz a pozíció érzékeléshez, az FC254 használja.
DB254 a szimulációhoz szükséges változókat tartalmazza.
A vezérlőprogramot FC1-ben kell megírni úgy, hogy semmilyen változót nem használhat fel a DB254-ből (nem hivatkozhat rá).
Csak a megadott ki és bemeneteket, valamint üres merkereket, esetleg egyéb DB blokkokat használhat fel.
Az FC254-et az OB1 hívja. A helyes működés érdekében (ki és bemenetek kezelése) a hívásnak meg kell előznie minden más blokkhívást, tehát az OB1 elején kell lennie!

A szimuláció mindössze annyit csinál, hogy ha a Q4.0 kimenet bekapcsol, akkor a sémán emeli az emelő művet, Q4.1-re süllyeszti, Q4.2-re előre mozgatja. Q4.3-ra hátra mozgatja. Amikor az egyes mozgások elérik valamelyik pozíciót, akkor a pozíciónak megfelelő bementet bekapcsolja.

Video file a szimulátor működéséről: Martogato2.avi (1.1MB)

A videon látható, hogy a kézzel bekapcsolt kimeneti bitekre a szimulátor hogyan reagál és hogy a bemenetek is aktívvá válnak a megfelelő pozíciókban.
A szimbólum tábla előre ki van töltve a be és kimenetek funkcióinak megfelelően:





Ha egy mozgás eléri a fizikai véghelyzetet, ahonnan már nem mehet tovább és a mozgató kimenet még mindig aktív, akkor a szimuláció a mozgatást megállítja. Egy ilyen helyzet egy valós berendezésnél mechanikai kárt, vagy a motorvédő kioldását okozná. A szimuláció a motorvédő hibajelzés megvalósítására nem terjed ki.

A feladat

Írjunk tehát programot az FC1-be, ami a fent leírtaknak megfelelően működteti a sémán látható gépet.
Nem fogok komplett, kész megoldással szolgálni. Ezzel az írással csak segíteni szeretnék másokat a megoldás elkészítésében és nem megoldani mások helyett. Ezért csak írásban próbálom körvonalazni a berendezést vezérlő programot.

Kezdjük a mozgások reteszelésével.
Ez mit jelent? Azt, hogy süllyeszteni csak akkor szabad, ha az oldal irányú mozgatás valamelyik pozícióban van (S1-S6) és nincs megnyomva az S8 (lent) végállás és éppen nem emel.
Emelni akkor szabad, ha nincs megnyomva az S7 végállás (fent) és éppen nem süllyeszt.
Előre akkor mehet, ha nincs megnyomva S6 végállás (kirakodásnál) éppen nem megy hátra és az emelő mű fent van (meg van nyomva S7).
Hátra akkor mehet ha nincs megnyomva S1 végállás (berakodásnál) éppen nem megy előre és az emelő mű fent van (meg van nyomva S7).

Folytassuk azzal a funkcióval, mai az SR gomb megnyomására visszaviszi az emelő művet alaphelyzetbe.
Szükség lesz egy tárolóra (RS) ami akkor aktív, amikor alaphelyzetbe küldés van. Erre azért van szükség, hogy ne akarjon örökké alaphelyzetbe menni, mert az megakadályozná az egyéb működését. Csak akkor menjen alaphelyzetbe, amikor ez a bit (legyen M1.0) aktív. Ez igen egyszerű, mert mivel akkor kell hogy alaphelyzetbe menjen, amikor megnyomjuk az SR gombot, az M1.0 bitet tehát az SR gombbal (I0.1) kell bebillenteni. A bitnek ezután mindaddig 1 állapotban kell maradni, amíg alaphelyzetbe nem ért. Ebből máris következik az,  hogy a bitet két feltétl együttes megléte (ÉS kapcsolata) fogja törölni, mégpedig az S1 és S8 érzékelő (I0.2 és I1.1) hiszen akkor van a gép alaphelyzetben, amikor az S1 pozíción van lent, ami az S8 pozíciója az emelő műnek. Amikor ezt eléri, az M1.0 törlődik és a gép alaphelyzetben van.
Mit csináljunk ezzel az M1.0-val? Három helyen bele kell tenni a mozgatást végző feltételsorokba a fentebb felsorolt reteszfeltétel sorát kiegészítve (ÉS kapcsolat).
Amikor az M1.0 aktív, akkor:
A következő lépés kicsit nehezebb. Meg kell oldani, hogy önállóan leengedje a kádba a ketrecet, majd felemelje, menjen a következőhöz, engedje le stb.
Ezt megtehetjük úgy is, hogy minden pozíciónak külön feltételsort készítünk a megközelítéshez és a süllyesztéshez. Ekkor 5 merker bitre van szükség az öt állapothoz, amelyeket egymás után billentünk be és mindig ahhoz a pozícióhoz megy lesüllyeszteni, amelyikhez tartozó bit aktív.
Egyszerűbb azonban (ugyanakkor nehezebb kicsit kivitelezni) ha az emelés -> előre -> pozíción stop -> süllyesztés mozgássorozatot mind az 5 helyen ugyanaz az egy vagy két merker intézi. Én ezt a megoldást választottam a "demó" elkészítésekor.
A következő  feladat, a várakoztatás a kádban. Ez már egyszerűbb, időtagot kell elhelyezni az emelés feltételei között, ami nem engedi emelni, amíg az idő le nem telt. Bonyolítja a helyzetet, hogy minden kádnál külön időtag szükséges, mert más-más időt kell eltölteni a ketrecnek a különböző kádakban, de az időtagok közül egyszerűen választhatunk sz S2-S5 pozíció érzékelők segítségével.
Inkább nem vállalkozok a részletes szöveges leírásra, kb annyira lenne olvasmányos mint egy sumér király lista. Helyette álljon itt egy video file.

Video file a kész program által működtetett szimulátorról és a program egyes részleteiről: Martogato.avi


A project (üres FC1-el) letölthető innen: Martogato_UW.zip (6.7MB)

Záró gondolatok

Mint említettem, a szimuláció egy valódi berendezés leegyszerűsített változata, ami gyakorlás céljából készült. Egy valós berendezésben a PLC nem csak ezeket a be és kimeneteket tartalmazza, és a program is bonyolultabb valamivel. Ami kimaradt, de a teljesség igénye nélkül:

Kapcsolódó írások:
Fúrógép szimuláció
Tolópad szimuláció S7-300/400-ra


Szirty