Miskolci Egyetem Gépészmérnöki és Informatikai Kar Automatizálási és Infokommunikációs Intézeti Tanszék
Villamosmérnöki szak Ipari automatizálás és Kommunikáció szakirány
Kisméretű sörfőző berendezés automatizálása Szakdolgozat
Török Péter XJEVEC 2014. 1
1. Tartalomjegyzék 1. 2. 3. 4. 5.
6.
7. 8.
9. 10.
Tartalomjegyzék 2. Bevezetés 4. Sörfőzés 5. A sörfőző berendezés 6. Kisméretű sörfőzők 7. 5.1. Csináld magad 7. 5.2. Törvényi szabályozás 7. 5.3. Saját, otthoni felhasználásra 7. 5.4. Vendéglátóhelyek 8. Eszközök bemutatása 8. 6.1. PLC 8. 6.2. Omron CP1L-EL20DT1D 9. 6.2.1. A CP1L-EL20DT1D típusnév feloldása 10. 6.2.2. Specifikáció 10. 6.2.3. I/O portok 12. 6.2.4. Analóg bemenet 13. 6.3. HMI 13. 6.4. Omron NB3Q-TW01B 14. 6.5. Pt-100 15. 6.6. Hőmérséklet érzékelő csatoló 15. 6.7. Programozó szoftverek 16. 6.7.1. CX-One 16. 6.7.2. CX-Programmer 17. 6.7.3. CX-Simulator 18. 6.7.4. NB-Designer 18. Fizikai modell 19. A program működési elve 22. 8.1. A program működésének folyamatábrája 23. 8.2. A program szimbólumtáblája 23. 8.3. Lényeges lépések a programban 30. 8.3.1. Analóg bemenet konvertálása hőmérséklet értékké 30. 8.3.2. Hőmérsékleti küszöbök kiszámolása 30. 8.3.3. A kezdő szakasz kiválasztása 31. 8.3.4. Időmérés 33. 8.3.5. Fűtési idő korrigálása 34. Tesztkörnyezet 35. HMI felület 36. 10.1. Kezdőképernyő 36. 10.2. Recept írása 37. 10.3. Recept kiválasztása 38. 10.4. Folyamat képernyő 39. 10.5. A HMI felület memória használata 40. 10.6. Hibajelzés és kezelés 41. 10.7. Egyszerűség 42. 2
11.
12. 13. 14. 15. 16.
A 2 mérős elrendezés 11.1. Fizikai modell 11.2. Gőzképződés 11.3. Működés Összefoglalás Summary Köszönetnyilvánítás Irodalomjegyzék Melléklet
42. 42. 43. 44. 45. 45. 46. 47. 48.
3
2. Bevezetés Nyári gyakorlatom során egy kiméretű, kompakt sörfőző berendezés automatizálását kellett elkészítenem, ezt szeretném dolgozatomban bemutatni. A sörfőző már készült, mikor oda kerültem, a paraméterei és a használt eszközök már ki voltak jelölve. Az én részem a szoftver elkészítése volt. A cél az, hogy a sörcefrét egy a felhasználó által megadott hőmérsékletre melegítse a rendszer és a megadott ideig ezen hőmérséklet egy szűk környezetében tartsa. Ilyen hőmérséklet-idő értéket egy receptben 6-ot lehet megadni, ezeket nevezem hőmérsékleti lépcsőknek a célfüggvény kinézete miatt.
1. ábra. Célfüggvény Az egyszerűséget és a minél kisebb költségeket szem előtt tartva a fűtési teljesítmény nem szabályozható 0-100% között, csak ki-be kapcsolásra van mód, nem PID, hanem On-Off szabályzásról beszélünk. A sörcefre hőmérsékletén kívül más paramétert nem mérünk. Összefoglalom a sörfőzés folyamatát, bemutatom a főző berendezést, a vezérléshez használt Omron CP1L-EL20DT1-D típusú PLC-t és az Omron NB3Q-TW01B HMI terminált, a rájuk készített programokat és egy teszt összeállítást a műhelyben fellelhető eszközök felhasználásával. Bemutatom, milyen előnyökkel járna, ha még egy pontban ismernénk a hőmérsékletet a rendszerben, a programot milyen elvek szerint lehetne elkészíteni.
4
3. Sörfőzés A sör készítéséhez a bajor sörtisztasági törvény szerint az alábbi 4 alapanyag szükséges: maláta, víz, komló és élesztő. Ezeken kívül a gyártó egyéb alapanyagokat is használhat, például kukorica, rizs vagy árpa. Első lépés a maláta elkészítése. Az árpát megtisztítják, kimossák, majd nagy méretű tárolókban beáztatják. A beáztatott árpát levegő befújásával keverik, illetve bizonyos időnként lecserélik a vizet. 2-4 nap alatt az árpaszemek 50% vizet vesznek fel. Ezután az áztatott árpát kiterítik vagy nagy méretű dobokban csíráztatják. A sörmaláta 8-10 nap alatt készül el, mikor a csíra hossza a mag hosszának körülbelül a másfélszerese lesz. Ezt az úgynevezett zöld malátát szárítják és aszalják, a hőmérsékletet folyamatosan emelik, a készítendő sör típusától függően 66-112 °C-ig. Az így elkészült malátát csírátlanítják, majd nagyobb darabokra őrlik. A következő lépés a cefrézés. Ebben a folyamatban a maláta darát nagy tartályokban vízzel keverik és melegítik, ez a tulajdonképpeni sörfőzés. Kétféle eljárást használnak: Észak-Európában, Nagy-Britanniában, Amerikában az úgynevezett infuziós eljárást, míg Közép-Európa államaiban az ú.n. dekokciós eljárást. Infuziós eljárás során az egész cefrét egyben melegítik fel a kellő 65-72 °C körüli hőmérsékletre. Dekokciós eljárásban a cefre harmadát külön választják, forrásig melegítik, majd visszakeverik a többi cefrébe. Ezt az eljárást ismételgetik, míg a cefre el nem éri a kívánt hőmérsékletet. A mi berendezésünkben ezen két eljárásnak egy hibrid formáját valósíthatjuk meg. Egyrészt lehetőség van tisztán infuziós eljárást használni és rögtön a kellő hőmérsékletre melegíteni a cefrét. Másrészt dekokciós eljárást is tudunk végezni azzal a különbséggel, hogy itt nem választjuk le a cefre harmadát, hanem a teljes mennyiséget felmelegítjük, majd pihenni hagyjuk, mintha arra várnánk, hogy a leválasztott harmadot külön felforraljuk, majd visszakeverjük. A cefrét ezután szűrőrácsra vezetik, a lerakódott törköly szolgál szűrőrétegként. A szűrt cefrét a komlóforraló üstbe vezetik, majd a komlóval kevert szűrletet 1,5-2 órán át forralják. A főzött sörlevet újból szűrik, majd gyorsan lehűtik, miközben levegővel keverik. A lehűtött sörlevet egy hűthető erjesztőtartályba vezetik és beleteszik a sörélesztőt. Az élesztővel kevert sörlé nemsokára erjedni kezd. 2-3 hét alatt végbemegy az erjedés és az élesztő leülepedik. A lefejtett sört utóerjedése és érése az ászok pincében történik. Itt a sört nagy fém vagy fa tartályokban tárolják 0 °C körüli hőmérsékleten. A sör 2-5 hónapig tartó utóerjedésen megy át, kitisztul és szén-dioxiddal telítődik. A kész sört zárt cellulózszűrőn sajtolják át, majd közvetlenül a hordóba, üvegbe töltés előtt 60-70 °C-on pasztőrözik. [1.]
5
4. A sörfőző berendezés Ez a sörfőző egy kis méretű, kompakt kialakítású berendezés, melyben több folyamat, úgymint cefrézés, szűrés és komlóval forralás is elvégezhető külön tartályok használata nélkül. Központi eleme a egy duplafalú acél főzőtartály, melynek belső része 100 literes, a külső köpeny pedig kb. 40 literes. A hőszigetelésről vastag üveggyapot réteg gondoskodik.
2. ábra. A sörfőző berendezés vázlata A belső tartályban zajlik a tényleges főzési folyamat, ebbe kerül a maláta és a víz. A belső tartály közepén egy keverőlapát található. A tartály tetejéről lenyúló mérőcső végében egy PT-100 hőérzékelő van elhelyezve. Alja kis mértékben kúpos a leeresztést megkönnyítendő. Tetején 20 cm átmérőjű beöntő nyílás helyezkedik el. A beöntő nyílás ajtaján plexi betekintő ablak van. A köpeny félig vízzel van töltve. Ennek az aljában helyezkedik el a 3*2 kW teljesítményű, 3 fázisú villamos fűtőpatron. A forró fűtőszál így nem közvetlenül a sörrel érintkezik, nem égeti meg a szilárd alkotórészeket. A közös falon keresztül sokkal kíméletesebben adja át a hőt a belső tartályba, a hőmérséklet eloszlás sokkal homogénebb, illetve a tisztítás is könnyebb. Méretezése tapasztalati úton történt. A vízszint feletti térben körülbelül 100-110 °C lehet a gőz hőmérséklete. A tartály nyomásmérővel 6
és nyomás leeresztő szeleppel van ellátva. A szelep elforgatásával a nyitási küszöb állítható maximum 1,5 bar nyomásig. A tartály alján kivezetett töltőcsonkra helyezve ablakos jelző mutatja a vízszintet. A főzőtartály fölött egy kisebb szűrőtartály van. A kiegészítő csővezeték rendszer és szivattyú segítségével a cefre ebbe juttatható fel. A tartály alján lévő szűrőrácson a törköly fennakad, a szűrlet a gravitáció hatására visszafolyik a főzőtartályba.
5. Kisméterű sörfőzők Kisméretű sörfőzők számos gyártó kínálatában elérhetőek.
5.1. Csináld magad Léteznek teljesen egyszerű, otthon a gáztűzhelyre tehető, illetve beépített elektromos fűtéssel rendelkező sörfőző üstök (fazekak), melyekbe előre elkészített keverékeket, sűrítményeket is lehet vásárolni. Merészebbek önmaguk is kiválogathatják és előkészíthetik a malátát és a komlót. Ezekhez az üstökhöz sok egyéb kellékre is szükség van, hordók, vödrök, csövek, szűrő, esetleg szivattyú, valamint helyre ezek tárolására, ez sokakat elbátortalanít. Azonban már itthon is terjednek, sőt sörfőző versenyeken az ilyen technikával főzőknek már külön kategóriát is szoktak indítani.
5.2. Törvényi szabályozás Itt érdemes megjegyezni, hogy 2012. január elsejétől Magyarországon is legális a házi sörfőzés. Mindenki háztartásonként 1000 liter sört készíthet évente adómentesen, bejelentési kötelezettség mellett, de fontos, hogy nem kerülhet értékesítésre, senkinek sem adható el. A jövedéki törvény 76.§ értelmében a helyileg illetékes Nemzeti Adó- és Vámhivatal kirendeltségénél kell bejelentenünk minden egyes főzésnél a főzést megelőző harmadik naptári napig az előállító nevét, lakcímét, az előállítani kívánt sör mennyiségét, valamint az előállítás címét is. A törvény az előállítani kíván sör egyik paraméterét sem kérdezi vagyis az alkoholtartalmat sem kell megadni. Fontos, hogy az előírás minden előállítási formára vonatkozik, nem csak a főzéssel, hanem a sűrítményből készített sörökre is. [2.]
5.3. Saját, otthoni felhasználásra Otthonunkba a saját egyéni igényeinket kielégítő kis méretű (20-50 l), készre szerelt sörfőző berendezést is beszerezhetünk, melyek nemcsak a főzési folyamatot, de a hűtést igénylő erjesztési és ászokolási folyamatot is el tudják végezni. Sajnos nem sok részletes információ érhető el ezekkel 7
kapcsolatban. Automatizálási szintjük változó, de az összes rendelkezik valamilyen hőmérséklet szabályozással. [4.]
3. ábra. Példa otthoni sörfőző berendezésre, Savant Systems 1400 [3.]
5.4. Vendéglátóhelyek Vendéglátóhelyek számára ugyancsak elérhetők az előzőnél nagyobb, néhány száz néhány ezer literes berendezések. Ezek célja a vevők bevonzása, hisz nem túl elterjedt dologról van szó. A betérő vendég nemcsak kiváló minőségű helyben készült nedűt kap, de élményeket is. Megnézheti, hogy hogyan készül a sör, sőt akár saját maga is részese lehet az elkészítésének. [4.]
6. Eszközök bemutatása 6.1. PLC A Programozható Logikai Vezérlők (Programmable Logical Controllers) olyan mikroszámítógépek, amelyek a technológiai folyamatokat vezérlik és irányítják tárolt program alapján. Kezdetben csak Boole jellegű feladatok megoldására voltak alkalmasak, ám mára az utasításkészletük, a számítógéppel támogatott programozási lehetőségek, a kommunikációs képességek, az irányítástechnikai rendszerek és az Ethernet hálózat révén a nagy és komplex rendszerek központi elemeivé váltak. A General Motors 8
pályázatára hozták létre őket az 1970-es években és azóta a folyamatos fejlődésnek köszönhetően mára szinte egyeduralkodóvá váltak az ipari automatizálás területén. A pályázat specifikációjában az alábbi szempontok szerepeltek: - egyszerű, moduláris felépítés, kis méret - ne tartalmazzon mozgó alkatrészt - galvanikusan leválasztott be és kimenet (24 Vdc-től 240 Vac-ig) - könnyű programozhatóság és újraprogramozhatóság - valós idejű működés, maximum 0,1 s válaszidővel - nagy megbízhatóság, minimális karbantartás - versenyképes ár. Ezeket a feltételeket sikerült is teljesíteni. Az univerzális hardver miatt gazdaságos megoldást nyújtanak. Gyors fejlesztéseket tesznek lehetővé. A programtervezés, szimulációs lehetőségek, a validálás és az installálás könnyen elvégezhető. Hosszú élettartamúak, mozgó alkatrészt nem tartalmaznak, ipari kivitelben készülnek. A számítógépes támogatás segítségével grafikus szemléltetéssel programozhatók, többféle programozási nyelvet támogatnak. Diagnosztikai feladatok ellátására képesek. A kommunikációs felületük révén rendszerbe szervezhetőek, további szoftverek segítségével a folyamatok vizualizálhatók, ember-gép kapcsolat révén könnyen kezelhetőek. Öndiagnosztikára és a felhasználók számára történő hibajelzés leadására képesek, az értékek archiválása révén statisztikai adatok kinyerése, a folyamat működésének vizsgálata, utólagos hibaellenőrzés is végezhető. [5. (1. fejezet)]
6.2. Omron CP1L-EL20DT1-D
4. ábra. Omron CP1L típusú PLC [6.]
9
Az Omron CP1L sorozat a moduláris PLC vezérlők funkcióit kínálja a mikro PLC vezérlők kialakításával. A berendezés az összes olyan funkcionalitást biztosítja, amelyre kisméretű gépek vezérléséhez szükség lehet. Egyes CP1L modellek ezen felül beágyazott, foglalat szolgáltatási képességet is biztosító Ethernet porttal is rendelkeznek, ami rugalmas kapcsolatot tesz lehetővé figyeléshez, működtetéshez, naplózáshoz és távoli hozzáféréshez. A programozásra szintén Ethernet porton keresztül van lehetőség. A CP1L emellett soros kommunikációhoz vagy analóg I/O-hoz többféle opcionális kártyával, illetve amennyiben több I/O-ra van szükség, további bővítőegységekkel is kiegészíthető. Mivel a CP1L architektúrája megegyezik a CP1H, CJ1 és CS1 sorozatú készülékekével, a programok memóriakiosztás és utasításkészlet szempontjából teljes mértékben kompatibilisek. [6.]
6.2.1. A CP1L-EL20DT1-D típusnév feloldása a következő: -
CP1L - a sorozat neve E - Ethernet port L - program kapacitás (M: 10K léps, L: 5K lépés) 20 - beépített normál I/O portok száma (20, 30, 40) D - DC bemenetek T1 - kimenet típusa: - R: relés - T: tranzisztoros (nyelő) - T1: tranzisztoros (forrás) - D - DC energiallátás [7. (2. o.)]
6.2.2. Specifikáció Az alábbi táblázatban tulajdonsága található.
a
CP1L-EL20DT1-D
10
PLC
néhány
fontosabb
1. táblázat. A CP1L-EL20DT1-D specifikációja [7. (2.o.)]
A specifikációban látható, hogy a memória mérete szóban van megadva, egy szó 16 bitet tartalmaz, azaz 2 bájt hosszúságú. A CP1L-EL PLC memória kiosztása a következő táblázatban látható.
11
2. táblázat. Memória kiosztás [7. (102. o.)]
6.2.3. I/O portok A CP1L-EL20DT1-D PLC 20 I/O porttal rendelkezik, ezek közül 12 bemenet és 8 kimenet. A bemenetekre a CIO 0.00-0.11 címekkel hivatkozhatunk.
5. ábra. PLC bemenet [7. (32. o.)] A kimenetekre pedig a CIO 100.00-100.07 címekkel. 12
6. ábra. PLC kimenet [7. (33. o.)] A COM(V+) és a V+ kimenet a PLC-n belül közösítve van, ám ez a gyakorlatban nem mindig teljesül, érdemes ezért kívülről is összekötni őket. A V+ és V- bemenetek a CIO 100.00-100.03 kimenetek tápellátásáért felelnek. A CIO 100.04-100.07 kimenetek külön vannak választva. [7. (32. o.)]
6.2.4. Analóg bemenet A CP1L-EL/EM PLC-k 2 darab beépített 10 bites analóg bemenettel vannak szerelve. A bemenetek feszültség típusúak, 0-10 V-os jelet képesek fogadni. A felbontás 1/1000, tehát a legkisebb érzékelhető jelváltozás 0,01 V. Az egyes csatorna (V1) az A642-es címen, a kettes csatorna (V2) az A643-as címen érhető el. A PLC ciklusidejének megfelelő ütemben íródnak be hexadecimális értékként. Ha a bemenetre érkező jel a 0-10 V-os tartományon kívül esik, akkor a konvertált érték a megfelelő minimális vagy maximális értéken fixálódik. A bemeneti impedancia minimum 100 kΩ, a megengedett legnagyobb feszültség a bemeneteken 15 V. A két bemenet közös nulla ponttal (COM) van ellátva.
7. ábra. Analóg bemenet [7. (432. o.)]
6.3. HMI Az Ember-Gép Interfész (Human-Machine Interface) a vezérlő rendszer és az emberek közötti információ cserét hivatottak biztosítani. A legegyszerűbb ilyen eszközök a kapcsolók, nyomógombok és jelzőlámpák, 13
már ezekkel is képesek vagyunk utasításokat adni a rendszerünknek és onnan visszajelzést kapni. Az elektronika fejlődésével a HMI-k is fejlődtek, megjelentek a LED-ek, a 7 szegmenses kijelzők, szöveges és grafikus kijelzők. Manapság a legelterjedtebbek a grafikus, érintőképernyős terminálok, melyek ipari kivitelben készülnek és valamilyen ipari kommunikációs rendszerrel (Profibus DP, Ethernet) csatlakoznak a PLC-hez. Képesek több PLC-vel is kapcsolatot tartani. Különböző felhasználói jogosutságokat kezelni. A belső memóriájuk segítségével a jelzéseket, figyelmeztetéseket (alarmokat), bejelentkezett felhasználókat naplózhatjuk. Külső csatlakozási lehetőségeik révén pedig részletesebb adatok eltárolására is lehetőségünk van. Megtalálhatók a piacon PLC-vel egybeépített terminálok is. Az összetettebb rendszerek számítógépre telepített programozó és ellenőrző szoftvereket használnak. A legújabb trend a HMI-k terén a webes képességek elterjedése. Ezek közé tartozik, hogy a gyártóspecifikus felületek html nyelvű megjelenítési réteget kapnak, ezáltal bármilyen kompatibilis eszközzel (pl.: PDA, PC, okostelefon, tablet) elérhetők és kezelhetők, internet kapcsolaton keresztül akár távolról is. Olyan megoldással is lehet találkozni, hogy a PLC-be van építve a web-szerver funkció és a kezelőfelület is ide van feltöltve, nincs egy ezt a funkciót ellátó HMI terminál a rendszerben, csak olyan ami ezt a felületet jeleníti meg.
6.4. Omron NB3Q-TW01B Az Omron NB HMI sorozat LED háttérvilágítású, nagy betekintési szögű, színes TFT LCD rezisztív technológiájú érintőképernyővel rendelkezik. Ideális, ha a folyamat működtetéséhez és felügyeletéhez elegendő néhány képernyő gombokkal, szövegekkel és értékekkel. A legkisebb méretű 3,5” átmérőjű és 320*240 pixel felbontású, míg a legnagyobb 10,1” átmérőjű és 800*480-as felbontású. A TW01 rendelési számot tartalmazó típusok Ethernet porttal vannak felszerelve, ezzel igazodva a CP1L-E típusú PLC-hez. Programozása történhet Etherneten, USB-n vagy soros porton keresztül. [6.]
14
8. ábra. Omron NB3Q-TW01B HMI [6.] Az NB3Q-TW01B ezek közül a legkisebb méretű, nevében a 3-as a 3,5”-os képernyő méretet hivatott jelezni. A következő tulajdonságokkal rendelkezik: - 24 Vdc energiaellátás (9 W fogyasztás) - IP65 védettség - Ethernet - 128 MB belső memória - USB memóriakártya támogatás - Álló és fekvő kijelzőmód - Többnyelvű felhasználói felület - 1db RS-232C/422A/485 9-pin D-Sub csatlakozó - Nyomtató támogatás - NB-Designer szoftver (ingyenes, Windows operációs rendszer) [6.]
6.5. Pt-100 Platinából készült ellenállás hőmérő. 0 °C hőmérsékleten az ellenállása 100 Ω. Előnyei a nagy vegyi ellenálló képesség, magas olvadáspont, lineáris karakterisztika. Hátránya a viszonylag drága alapanyag, bár nagy fajlagos ellenállása miatt kis mennyiség elegendő egyetlen érzékelőbe. Az érzékelőt akár közvetlenül is elhelyezhetjük a mérendő közegben, de általában rozsdamentes acél védőcsőben helyezzük el.
6.6. Hőmérséklet érzékelő csatoló A Pt-100 hőmérséklet érzékelőt nem lehet közvetlenül a PLC analóg bemenetére kötni, hiszen az nem tud ellenállást mérni. Az ellenállás értéket feszültség vagy áram jellé kell alakítani, erősíteni, majd az a PLC bemenetével kompatibilis jellé formálni.
15
Az általam használt eszköz egy Weidmüller MAS Pt100 0..100°C típusú mérés leválasztó erősítő. Ez az eszköz Pt-100 ellenállás hőmérőkhöz lett kialakítva, 2 és 3 vezetékes mérési elrendezésben is használható. Megtáplálása 24 Vdc-vel történik. A kimenet fajtája DIP kapcsolóval állítható, 0...10V, 0...20mA, 4...20mA vagy 0...5V. Én 2 vezetékes elrendezésben, 0...10V-os kimenettel használtam. [8.]
9. ábra. Weidmüller MAS Pt100 fényképe és bekötési ábrája [8.]
6.7. Programozó szoftverek 6.7.1. CX-One
10.
ábra. A CX-One szoftver logója [6.]
A CX-One egyetlen szoftvercsomag telepítésével és egyetlen licenckóddal lehetővé teszi számos eszköz, így PLC-vezérlők, terminálok, hajtásszabályozó rendszerek és hálózatok felépítését, konfigurálását és programozását. Egyetlen telepítés és licenckód az összes szoftverhez, a webes regisztrációval ingyenes frissítések és könyvtárak, valamint súgó és válaszok a gyakran felmerülő kérdésekre. Egy szoftver PLC és HMI programozáshoz, hálózat konfiguráláshoz, hajtások, szabályozók és szenzorok paraméterezéséhez. Egységes felület minden eszköz konfigurálására. A szoftvercsomag számos szoftvert tartalmaz a programozáshoz, hálózatok kezelésére, hajtástechnika és 16
mozgásszabályozás működtetéséhez, érzékeléshez, szabályozáshoz és folyamatirányításhoz. [6.]
6.7.2. CX-Programmer A CX-Programmer egyetlen általános PLC szoftverplatformot biztosít az Omron valamennyi PLC-vezérlő típusához – a mikro PLC-ktől egészen a Duplex processzoros rendszerekig. A szoftver lehetővé teszi a PLC-kódok egyszerű átalakítását és újrafelhasználását különböző PLC-típusok között, továbbá teljesen újrafelhasználhatóvá teszi a régebbi PLC-programozási szoftverekkel létrehozott szabályozóprogramokat. [6.] Felülete egyszerű kinézetű, könnyen áttekinthető. Fent a menüsor és az eszköztárak találhatók, a legtöbb funkciónak megtalálható itt a gombja. Bal oldalt a projekt ablak van, innen érhetők el a PLC-k, a szimbólumtábla, a memória, a programok és a funkcióblokkok. Legalul az állapotsáv található, ide kerülnek a programon végzett műveletek eredményei, például fordítási információk, hibák, keresztreferencia adatok. Középen található a program ablak, itt jelenik meg a kiválasztott program tartalma. A programok szekciókra bonthatók a könyebb kezelhetőség végett, egy program legalább 2 szekciót tartalmaz. A szekviók egymás után sorban futnak le. Egy-egy szekció létrafokokból (rung) tevődik össze, az egyes rungok egymást követően hajtódnak végre. A program legvégére automatikusan generálódik egy END szekció, amely egyetlen rungot tartalmaz a program végét jelző End utasítással. Ez az utasítás biztosítja a program ciklikus működését.
11.
ábra. A CX-Programmer (version 9.42) képernyője
17
Kétfajta programozási nyelv érhető el, az egyik az állapotlista (Statement List), a másik a létra diagram (LAD). Míg előbbi az Assembly nyelvre hasonlít és szövegesen kell megadni az utasításokat, addig a létra diagram grafikusan jeleníti meg ezeket. A legtöbb esetben bármikor válthatunk a két nyelv között, de például a funkcióblokkok meghívása csak létra nyelven történhet. A beépített súgóban minden egyes utasítás részletes leírását megtalálhatjuk, mely tartalmaz általános leírást, be és kimenetek leírását, állapot diagrammot, példaprogramot.
6.7.3. CX-Simulator A program a CX-One, az Omron univerzális szoftvercsomagjának része. A tényleges PLC-rendszer környezetével egyenértékű hibakeresési környezet érhető el a CS/CJ/CP sorozatú PLC-vezérlők működésének szimulációjával a számítógépen található virtuális PLC segítségével. Lehetővé teszi a program hibakeresését egyetlen PLC-vezérlőn a tényleges rendszer összeállítása előtt. Így csökken a gépek és a berendezések fejlesztéséhez és beindításához szükséges teljes bevezetési idő. A tényleges PLC-vezérlőben nem használható hatékony hibakeresési műveletek végrehajtása, például lépésenkénti és ciklusonkénti működtetés vagy töréspontok beszúrása is elérhető. A CX-Programmer valamennyi hibakeresési funkciója használható, a ciklusidő a tényleges PLC-rendszer nélkül ellenőrizhető. Számos módszer használható virtuális külső bemenetek létrehozásához és lejátszásához. [6.]
6.7.4. NB-Designer Az NB-Designer az NB típusú kompakt HMI terminálok programozásához használható ingyenes szoftver. A program kezelőfelülete az alábbi módon épül fel: Fent a menüsor és az szköztárak helyezkednek el. Bal oldalon a használható komponensek listája található. Középen látható a munkaablak, az aktuálisan szerkesztett képernyő itt jelenik meg. Jobb oldalt a képernyők és a munka fájlok listája található. Legalul az állapotsor van.
18
12.
ábra. Az NB-Designer (version 1.31) képernyője
A képernyőn rajzolhatunk, grafikai elemeket jeleníthetünk meg, különféle kapcsolókat, gombokat, beviteli mezőket, kijelzőket, grafikonokat tudunk elhelyezni. Ezen elemek egymás alá-fölé is kerülhetnek és a funkciójuknak megfelelően válhatnak láthatóvá. Ezen rétegek használatával megtehetjük, hogy a látható gombunk elé több láthatatlan gombot helyezzünk és így a gomb megnyomásával nem egy, hanem több funkciót is egyszerre tudunk aktiválni. Felhasználókat hozhatunk létre, az egyes képernyők és funkciók elérését korlátozhatjuk a nem megfelelő jogosítvánnyal rendelkező felhasználók előtt. A program támogatja a többnyelvű felhasználói felület készítését, az egyes feliratok szótárba kerülnek, ez után már csak ki kell töltenünk a többi nyelvhez tartozó mezőket.
7. Fizikai modell Fizikai modellnek egy olyan 2 tartályból álló zárt rendszert választottam, ahol a tartályok vízzel töltöttek, a tartályok acél anyagának hőkapacitása elhanyagolható. Erre a rendszerre számoltam ki, hogy az adott 6 kW teljesítménnyel mennyi időbe telik a rendszer hőmérsékletének 1 °C-al való megemelése. V1=0,1 m3 (Belső tartály) V2=0,02 m3 (Köpeny) ρvíz=1 kg/m3 cvíz=4,2 kJ/kg*K Pfűtés=6 kW A közeg által felvett hő: 19
Q = c * m * ΔT , ahol
m = ρvíz * (V 1 * V 2) a belső tartályban és a köpenyben lévő víz tömege. A fűtés által leadott hő:
Q = P *t A kettő összeadásával:
c * m * ΔT = P * t , ahol: V - térfogat [m3] Q - hőmennyiség [kJ]=[kWs] c - az anyag fajhője [kJ/kg*K] m - az anyag tömege [kg] ∆T - hőmérséklet különbség [K]=[°C] P - teljesítmény [kW] t - idő [s] Az egyenletet átrendezve: t ΔT
eredményt kapjuk, ahol
t ΔT
=
c P
*m
egy meredekség jellegű paraméter,
c P
pedig a
rendszerre jellemző állandó. Behelyettesítve: t 1
=
4,2 6
* 120
t = 84 s. A főzőtartály hozzávetőleges méreteit ismerve, kb 20 cm átmérőjű és 1 m magas belső, illetve kb 25 cm átmérőjű és 1,2 m magas külső fal, 5 mm vastag acéllemez, az adódik, hogy a tömege a kiegészítő berendezések nélkül kb 140 kg. A fenti egyenletekbe az acél paramétereit beírva azt kapjuk, hogy ez további 11 s/°C időt igényel. Tehát 95 s-ig kell fűteni a rendszert 1 °C-nyi hőmérséklet emeléshez. Amennyiben a rendszerünket egy adott hőmérsékletről egy cél hőmérsékletre kell felmelegítenünk, a két hőmérséklet különbségével megszorozva ezt a t időt megkapjuk, hogy mennyi ideig kell bekapcsolva lennie a fűtésnek.
20
Ez az eredmény nagyságrendileg jó, kiindulási pontnak megfelel, ám alulbecsüli a szükséges értéket. A program működési elvéből kifolyólag akár ezt is használhattam volna, mindössze több ciklusban jutottam volna el a cél hőmérsékletig. Sokkal lassabban, ám valamivel pontosabban. A végleges meredekség érték 120 s/°C-nak lett megválasztva néhány, a kész berendezésen végzett próba után. Fűtés közben köpenyben lévő víz hőmérséklete gyorsabban növekszik, mint a belső tartályban. Ez egyrészt abból adódik, hogy előbbi mennyisége csak ötöde az utóbbinak. Másrészt a köpenyben van a fűtőszál és a falon való hőátadás is időbe telik. A falon történő hőátadás hővezetéssel történik, Fourier 1. törvénye alapján kiszámolható lenne, az adott pillanatban mekkora teljesítménnyel fűti a közös fal a belső teret, ám ehhez tudni kellene az aktuális hőmérsékletet a köpenyben is. Ez utóbbi ismerete azonban egy lényegesen egyszerűbb megoldását is lehetővé tenné a teljes vezérlési feladatnak, szükségtelenné téve ennek kiszámolását. Ezt a megoldást egy későbbi pontban részletesen tárgyalom. Ez a hőmérséklet különbség a két tartály között újabb problémát vet fel, az úgynevezett hőmérséklet túllövést. A hőmérséklet kiegyenlítődés során a köpenyből hő adódik át a belső tartályba, megemelve annak a hőmérsékletét. Például ha a köpenyben 20 liter 100 °C-os víz van, a belső tartályban pedig 100 liter 50 °C-os, akkor
c * mb * (T − 50) = c * mk * (100 − T ) egyenletet megoldva, ahol c a vízfajhője, mb és mk a belső tartályban és a köpenyben lévő víz tömege, megkapjuk, hogy T=58,3 °C. Ennyi lesz a kiegyenlítődés után a közös hőmérséklet. A belső tartály hőmérséklete 8,3 °C-al emelkedik meg. Ha ez akkor történik, mikor a belső tartályban 50 °C hőmérsékletet szeretnénk beállítani, akkor ez a hőmérséklet növekedés azt jelenti, hogy ennyivel lőttünk túl a cél hőmérsékleten. Ekkora érték nem engedhető meg. Modellemben azzal nem számoltam, hogy a köpenyben gőz is fejlődik. A fenti képlet jobb oldalához a gőz fajhőjét és a forráshőt is hozzá kell adni, ami még nagyobb eltérést okoz. Az ezzel való számoláshoz azonban a rendszer sokkal több tulajdonságát mérnünk kellene, így ezt most nem teszem meg, csak jelzem. Szintén itt kell megemlítenem, hogy a környezet felé történő veszteségektől is eltekintettem a modellben. Egyrészt azért, mert ezt könnyebb lemérni a kész rendszeren, majd a kapott eredményt beemelni egy jobb modellbe. Másrészt ez a veszteség viszonylag kicsi. A magára hagyott, kikapcsolt fűtésű berendezés kb 16 óra alatt kb 50 °C-ról 45 21
°C-ra hűlt le. Ez 0,005 °C/perc hűlési sebességet jelent, miközben ugyanezen a tartományon bekapcsolt fűtéssel 0,5 °C/perc hőmérséklet növekedési sebességet tudunk elérni (a 120 s/°C meredekség reciproka).
8. A program működési elve A vezérlő program célja, hogy a beállított értékre melegítse a belső tartályban lévő keveréket úgy, hogy mindössze annak a hőmérsékletét tudjuk mérni. Annyi ideig tartsa bekapcsolva a fűtést, hogy a fűtés kikapcsolása után a hőmérséklet kiegyenlítődés miatti hőmérséklet emelkedés ne okozzon túllövést. Akkor kapcsolja ki a fűtést, mikor az aktuális hőmérséklethez képest a túllövés pontosan a cél hőmérséklet közelébe juttatja a közegünket. Mindezt úgy valósítottam meg, hogy megmérem a közeg aktuális hőmérsékletét, ezt kivonom a cél hőmérsékletből. A hőmérséklet különbséget megszorzom a meredekséggel és megkapom, hogy mennyi ideig kell bekapcsolva tartanom a fűtést, ez lesz a fűtési idő. A fűtési idő elteltével kikapcsolom a fűtést és várok. Közben figyelem a hőmérséklet növekedés sebességét és ha túl alacsony vagy negatív, tehát csökkenni kezd, akkor újraindítom a felfűtési folyamatot. Amikor elérem a cél hőmérsékletet, akkor a beállított ideig ott kell tartani a hőmérsékletet. Mérem az időt és ha lejár, akkor a következő hőmérsékletre kezdem a felfűtést. Közben figyelemmel tartom a hőmérsékletet és ha a cél alá esik, akkor visszakapcsolom egy kicsit.
22
8.1. A program működésének folyamatábrája
13.
ábra. A program működésének folyamatábrája
8.2. A program szimbólumtáblája A szimbólumtáblában megtalálhatóak a programban használt változók, azok típusa és helye a memóriában.
23
3. táblázat. A program szimbólumtáblája Név
Adattípus
Cím/Érték
Komment
start_stop
BOOL
0.00
be/ki kapcsoló gomb
futes_rele
BOOL
0.01
a fűtés reléje be van húzva
CHANNEL
24
perc
fűtés
BOOL
100.00
fűtés bekapcsolva
P_First_Cycle
BOOL
A200.11
First Cycle Flag
P_Step
BOOL
A200.12
Step Flag
P_First_Cycle_Task
BOOL
A200.15
First Task Execution Flag
P_Max_Cycle_Time
UDINT
A262
Maximum Cycle Time
P_Cycle_Time_Value
UDINT
A264
Present Scan Time
P_Cycle_Time_Error
BOOL
A401.08
Cycle Time Error Flag
P_Low_Battery
BOOL
A402.04
Low Battery Flag
P_IO_Verify_Error
BOOL
A402.09
I/O Verification Error Flag
P_CIO
WORD
A450
CIO Area Parameter
P_WR
WORD
A451
WR Area Parameter
P_HR
WORD
A452
HR Area Parameter
P_DM
WORD
A460
DM Area Parameter
P_EM0
WORD
A461
EM0 Area Parameter
P_EM1
WORD
A462
EM1 Area Parameter
P_EM2
WORD
A463
EM2 Area Parameter
P_EM3
WORD
A464
EM3 Area Parameter
P_EM4
WORD
A465
EM4 Area Parameter
P_EM5
WORD
A466
EM5 Area Parameter
P_EM6
WORD
A467
EM6 Area Parameter
P_EM7
WORD
A468
EM7 Area Parameter
P_EM8
WORD
A469
EM8 Area Parameter
P_EM9
WORD
A470
EM9 Area Parameter
P_EMA
WORD
A471
EMA Area Parameter
24
P_EMB
WORD
A472
EMB Area Parameter
P_EMC
WORD
A473
EMC Area Parameter
P_Output_Off_Bit
BOOL
A500.15
Output OFF Bit
CHANNEL
A642
analóg bemenet
P_GE
BOOL
CF000
Greater Than or Equals (GE) Flag
P_NE
BOOL
CF001
Not Equals (NE) Flag
P_LE
BOOL
CF002
Less Than or Equals (LE) Flag
P_ER
BOOL
CF003
Instruction Execution Error (ER) Flag
P_CY
BOOL
CF004
Carry (CY) Flag
P_GT
BOOL
CF005
Greater Than (GT) Flag
P_EQ
BOOL
CF006
Equals (EQ) Flag
P_LT
BOOL
CF007
Less Than (LT) Flag
P_N
BOOL
CF008
Negative (N) Flag
P_OF
BOOL
CF009
Overflow (OF) Flag
P_UF
BOOL
CF010
Underflow (UF) Flag
P_AER
BOOL
CF011
Access Error Flag
P_0_1s
BOOL
CF100
0.1 second clock pulse bit
P_0_2s
BOOL
CF101
0.2 second clock pulse bit
P_1s
BOOL
CF102
1.0 second clock pulse bit
P_0_02s
BOOL
CF103
0.02 second clock pulse bit
P_1min
BOOL
CF104
1 minute clock pulse bit
P_On
BOOL
CF113
Always ON Flag
P_Off
BOOL
CF114
Always OFF Flag
hőm
REAL
D0
aktuális hőmérséklet
CHANNEL
D2
dT
CHANNEL
D4
s
CHANNEL
D6
perc
CHANNEL
D8
perc_int
CHANNEL
D10
perc_bcd
25
CHANNEL
D12
lépés
CHANNEL
D14
ideiglenes
CHANNEL
D18
analóg bemenet REAL
CHANNEL
D20
0.1s int
CHANNEL
D22
0.1s bcd
CHANNEL
D24
perc
CHANNEL
D26
perc bcd
CHANNEL
D30
perc
CHANNEL
D32
perc_bcd
CHANNEL
D34
0.1s
CHANNEL
D36
0.1s bcd
CHANNEL
D38
perc_bcd
CHANNEL
D44
perc
CHANNEL
D50
perc
CHANNEL
D54
0.1s
CHANNEL
D56
0.1s bcd
várakozás
UINT_BCD
D80
várakozási idő fűtés ismétlt bekapcsolsára x0.1s
meredekség
REAL
D88
x s/°C
idő1
UINT_BCD
D90
perc
idő2
UINT_BCD
D91
perc
idő3
UINT_BCD
D92
perc
idő4
UINT_BCD
D93
perc
idő5
UINT_BCD
D94
perc
idő6
UINT_BCD
D95
perc
hőm1
REAL
D100
T1
hőm2
REAL
D102
T2
hőm3
REAL
D104
T3
hőm4
REAL
D106
T4
26
hőm5
REAL
D108
T5
hőm6
REAL
D110
T6
név
STRING[4]
D116
recept neve
sp_num
UINT
D120
tartott szakasz sorszáma
t_act
UINT_BCD
D121
hátralévő idő
sp_act
REAL
D122
tartott hőmérséklet
nyil
UINT
D124
hőm1p
REAL
D130
T1 + x °C
hőm2p
REAL
D132
T2 + x °C
hőm3p
REAL
D134
T3 + x °C
hőm4p
REAL
D136
T4 + x °C
hőm5p
REAL
D138
T5 + x °C
hőm6p
REAL
D140
T6 + x °C
hőm1m
REAL
D142
T1 - x °C
hőm2m
REAL
D144
T2 - x °C
hőm3m
REAL
D146
T3 - x °C
hőm4m
REAL
D148
T4 - x °C
hőm5m
REAL
D150
T5 - x °C
hőm6m
REAL
D152
T6 - x °C
CHANNEL
D154
hőm1 +1
CHANNEL
D156
hőm2 +1
CHANNEL
D158
hőm3 +1
CHANNEL
D160
hőm4 +1
CHANNEL
D162
hőm5 +1
sz0
BOOL
W0.00
T
sz1
BOOL
W0.01
T1 <= T <= T1+1
sz2
BOOL
W0.02
T1+1 < T < T2
sz3
BOOL
W0.03
T2 <= T <= T2+1
sz4
BOOL
W0.04
T2+1 < T < T3
27
sz5
BOOL
W0.05
T3 <= T <= T3+1
sz6
BOOL
W0.06
T3+1 < T < T4
sz7
BOOL
W0.07
T4 <= T <= T4+1
sz8
BOOL
W0.08
T4+1 < T < T5
sz9
BOOL
W0.09
T5 <= T <= T5+1
sz10
BOOL
W0.10
T5+1 < T < T6
sz11
BOOL
W0.11
T6 <= T
sz12
BOOL
W0.12
folyamat befelyezve
fut
BOOL
W0.15
a program fut
sz1_h
BOOL
W1.00
sz1 hőm tart
sz2_h
BOOL
W1.01
sz2 hőm növ
sz3_h
BOOL
W1.02
sz3 hőm tart
sz4_h
BOOL
W1.03
sz4 hőm növ
sz5_h
BOOL
W1.04
sz5 hőm tart
sz6_h
BOOL
W1.06
sz6 hőm növ
sz7_h
BOOL
W1.07
sz7 hőm tart
sz8_h
BOOL
W1.08
sz8 hőm növ
sz9_h
BOOL
W1.09
sz9 hőm tart
sz10_h
BOOL
W1.10
sz10 hőm növ
sz11_h
BOOL
W1.11
sz11 hőm tart
BOOL
W1.15
hőmérséklet emelkedés segéd változó
sz0_f
BOOL
W2.00
szakasz 0 fűtés kérés
sz1_f
BOOL
W2.01
szakasz 1 fűtés kérés
sz2_f
BOOL
W2.02
szakasz 2 fűtés kérés
sz3_f
BOOL
W2.03
szakasz 3 fűtés kérés
sz4_f
BOOL
W2.04
szakasz 4 fűtés kérés
sz5_f
BOOL
W2.05
szakasz 5 fűtés kérés
sz6_f
BOOL
W2.06
szakasz 6 fűtés kérés
sz7_f
BOOL
W2.07
szakasz 7 fűtés kérés
28
sz8_f
BOOL
W2.08
szakasz 8 fűtés kérés
sz9_f
BOOL
W2.09
szakasz 9 fűtés kérés
sz10_f
BOOL
W2.10
szakasz 10 fűtés kérés
sz11_f
BOOL
W2.11
szakasz 11 fűtés kérés
BOOL
W2.15
fűtés hiba
sz0_cr
BOOL
W3.00
sz0 counter reset
sz1_cr
BOOL
W3.01
sz1 cnt res
sz2_cr
BOOL
W3.02
sz2 cnt res
sz3_cr
BOOL
W3.03
sz3 cnt res
sz4_cr
BOOL
W3.04
sz4 cnt res
sz5_cr
BOOL
W3.05
sz5 cnt res
sz6_cr
BOOL
W3.06
sz6 cnt res
sz7_cr
BOOL
W3.07
sz7 cnt res
sz8_cr
BOOL
W3.08
sz8 cnt res
sz9_cr
BOOL
W3.09
sz9 cnt res
sz10_cr
BOOL
W3.10
sz10 cnt res
sz11_cr
BOOL
W3.11
sz11 cnt res
ciklus_1
FUNCTION BLOCK
ciklus_2
FUNCTION BLOCK
ciklus_3
FUNCTION BLOCK
ciklus_4
FUNCTION BLOCK
ciklus_5
FUNCTION BLOCK
ciklus_6
FUNCTION BLOCK
f1
FUNCTION BLOCK
f2
FUNCTION BLOCK
f3
FUNCTION BLOCK
f4
FUNCTION BLOCK
f5
FUNCTION BLOCK
skálázás
FUNCTION BLOCK
29
8.3. Lényeges lépések a programban 8.3.1. Analóg bemenet konvertálása hőmérséklet értékké Az analóg bemenet jelének konvertálása hőmérséklet értékké az SCL_Parameters nevű funkcióblokkal. Az int_Raw_Min/Max értékek az int_Raw bemenet által felvett legkisebb és legnagyobb értékek, az flt_Scaled_Min/Max pedig a kimenet legkisebb és legnagyobb értéke. Ezeknek a paramétereknek a segítségével lineárisan összeegyezteti a kimenetet a bemenettel.
14.
ábra. SCL_Parameters funkcióblokk
8.3.2. Hőmérsékleti küszöbök kiszámolása Az alsó és felső hőmérséklet küszöbök kiszámítására a kezdő szakasz kiválasztásához, a továbblépési feltételekhez és a hőn tartáshoz van szükségünk. Eredetileg a hőm1p érték +1 °C-ot jelentett T1-hez képest, de ez vissza lett véve +0,2-re, az eredeti egy név nélküli, a D154 címen elhelyezett változóval lett helyettesítve, hogy a kezdő szakasz kiválasztása ugyan olyan maradjon. A hőm2p, hőm3p, ... , hőm6p változók szintén ilyen elv szerint lettek módosítva.
30
15.
ábra. Hőmérséklet küszöbök kiszámítása, részlet, példa T1-re
8.3.3. A kezdő szakasz kiválasztása A kezdő szakasz kiválasztása az aktuális hőmérséklet alapján történik. Ha az aktuális hőmérséklet a receptben megadott egyik hőmérséklet és az annál 1 °C-al nagyobb hőmérséklet közé esik, akkor a program az ehhez a hőmérséklethez tartozó hőntartási szakaszba lép be és az erre a szakaszra megadott ideig várakozik. Az idő leteltével a következő szakaszba lép, az ez előtti szakaszok kimaradnak. Mivel a rendszer nincs hűtőrendszerrel felszerelve és a veszteség nagyon alacsony, ezért nincs értelme várakozni arra, hogy visszahűljön a legelső lépcsőben megadott hőmérsékletre, majd onnan kezdje a folyamatot. Az 1 °C-os tartomány azért kell, hogy ne csak az adott érték pontos eltalálásakor maradjon az adott lépcsőn, hanem kicsivel magasabb hőmérséklet esetén is. Ilyen előfordulhat 31
például, ha elmegy az áram vagy ha egy másik főzőből szivattyúzunk át ismert hőmérsékletű cefrét és azon a hőmérsékleten akarjuk továbbra is tartani. Például T3=56 °C, t3=15 perc és a cefre hőmérséklete 56,5 °C, akkor a T3 hőmérsékleten fogja tartani 15 percig. Persze a veszteség kicsi, ennyi idő alatt nem fog 56 °C-ra visszahűlni, de 56 és 56,5 között lesz, ami még a főzési folyamatban megengedhető eltérés. Ha az aktuális hőmérséklet ezeken a tartományokon kívül esik, akkor felfűtési szakaszba lép. Arra a hőmérsékletre kezd el felfűteni, ami az aktuális hőmérsékletet felülről legjobban közelíti. Az előző példából kiindulva, ha T3=56 °C, T4=62 °C, T5=63 °C és a cefre 58 °C-os, akkor T4-re fog felfűteni, majd T4 hőmérsékletet fogja tartani t4 ideig, csak ez után lép T5-re. Itt érdemes megjegyezni, hogy 1 °C vagy annál kisebb hőmérséklet különbséggel beállítani két vagy több egymás követő lépcsőt nem ajánlott. Ha az aktuális hőmérséklet olyan, hogy pont beleesik több ilyen tartományba, akkor több szakasz indul el egyszerre. Persze az erősebb kutya győz, az a szakasz fog dominálni, amelyikben a legmagasabb hőmérséklet van beállítva, mert akkor is bekapcsolja a fűtést, amikor a többinek nem kellene, mindenesetre inkább kerüljük. A cefrénél se fog nagy változást okozni, ha például előbb 56, majd 56,2 °C-on tartjuk és nem végig 56-on. A kezdő szakasz kiválasztása csak egyszer fut le, ha már valamelyik szakaszba beléptünk, akkor az letiltja az újabb kiválasztást. Onnantól fogva a program sorosan lépked előre a ciklusokban.
32
16.
ábra. A kezdő szakasz kiválasztása, részlet, példa T1-re
8.3.4. Időmérés Az időt egy számláló és egy időzítő együttes használatával mértem, kivéve hőntartásnál a kis ráfűtéseket, ott elég az időzítő. A visszafelé számlálóba beírtam, hány percig kell számolnia, az időzítőt pedig 60s-ra állítottam. Mikor az időzítő lejárt, engedélyezte a számláló bemenetét ami számolt egyet, illetve önmagát is újraindította. Ezzel lett egy perc számlálóm. A hőn tartás idejét percben adják meg, így az közvetlenül megadható itt. A felfűtésnél pedig kerekítek egész percekre, ±1 perc még megengedhető. Azért választottam ezt a kettős megoldást, mert az egyszerű időzítőbe (TIM) alig több, mint 16 perc a maximálisan beállítható idő, ami kevés. A hosszú idejű időzítő (TIML) 1 helyett 2 szó hosszúságú bemeneti változókat használ így ebbe akár 115 napnyi időt is megadhatunk, ám a 2 szó hosszú BCD kódolású számok használata szintén sok konverzióval jár, így inkább előbbit választottam.
33
17.
ábra. Perc számláló
8.3.5. Fűtési idő korrigálása A felfűtésnél előfordulhat, hogy a kiszámolt felfűtési idő több vagy kevesebb annál, mint amennyire valójában szükség van. Abban az esetben, ha kevesebb és nem éri el a cél hőmérséklethez tartozó alsó küszöböt, akkor várni kell egy kicsit a hőmérséklet kiegyenlítődésre. A program figyeli, hogy a fűtés kikapcsolása után percenként hány °C-ot emelkedik a hőmérséklet. Amikor ez kisebb, mint 0,3 °C/perc, újraszámolja a felfűtési időt és újraindítja a fűtést immár ezzel az idővel. Természetesen ha ez az idő kisebb, mint 1 perc, a kerekítés miatt nem indulna el a fűtés, ilyenkor felfelé kerekítek 1 percre. Abban az esetben ha több a kiszámolt felfűtési idő, mint amennyi valójában kellene, nem történik semmi. Egyszerűen addig fűt, ameddig eredetileg kiszámolta. Természetesen ha közben elérjük a cél hőmérsékletet, akkor hőntartási szakaszba váltunk, ami leállítja a fűtést. A programba végül nem került bele, de be lehet tenni egy olyan feltételt, hogy ha a kiszámolt felfűtési idő kisebb, mint amennyi még hátra van, akkor a kisebb értékre módosítsa a számlálót. Mindössze azt kell tenni, hogy folyamatosan újraszámolni a hőmérséklet különbségből a fűtési időt, és összehasonlítani a számlálóban lévővel. Ha előbbi kisebb, a számlálót újra kell indítani, hogy beíródjon az új érték. A teljes program a mellékletben csatolva megtalálható.
34
9. Tesztkörnyezet A program és a főző berendezés párhuzamosan készült külön telephelyen, illetve a kész berendezéen való tesztelés idő és energiaigényes, ezért egy egyszerűbb módszer kellett a program kipróbálásához. Egy asztalon szereltük össze a vezérlő rendszer elemeit, a fűtést pedig különböző módokon modelleztem. Első esetben egyetlen felfűtési és hőntartási szakaszt próbáltam ki. A kiindulási hőmérséklet a szobahőmérséklet volt, míg az elérendő hőmérséklet 30 °C. Megfogtam a Pt-100-at, lemértem, hogy hány másodperc alatt növekedik a mért hőmérséklet 5 °C-ot, majd ezt az időt elosztottam 5-el. így megkaptam, hogy kb 2 s/°C meredekséggel tudom fűteni a kis, 3 cm hosszú hőérzékelőt. Ezt az adatot beállítottam a programba, majd elindítottam. Mikor a 00-ás kimenet LED-je felvillant, tehát mikor a PLC a fűtőpatront kapcsolná, akkor megfogtam a hőérzékelőt és addig tartottam, míg a LED világított. Közben pedig figyeltem a hőmérsékletet a kijelzőn. Második lépésben az egyik hőmérsékletről egy magasabbra való áttérést teszteltem, ekkor a magasabb hőmérsékletet úgy értem el, hogy a Pt-100-at a laptop hűtőjéhez közel tettem. Mivel egy régi modellt kaptam, elég meleg levegőt fújt ki, hogy magas hőmérsékletet is elérhessek. Harmadik esetben már a kész programot próbáltam ki nagy hőmérséklet tartományon. Ekkor egy relé került a 00-ás kimenetre. A relé kapcsoló feszültsége 24 Vdc, a kapcsolt feszültség pedig 230 Vac. A relé hálózati feszültséget kapcsolt egy dugaljra, abba pedig legkisebb fokozatba kapcsolt hőlégfújót dugtam. A hőlégfújó a padlóra került, fölfelé nézett, fölé az asztalról kilógatva a Pt-100 került. Amikor a program aktiválta a fűtés kimenetet, a hőlégfújó bekapcsolt és felmelegítette a hőérzékelőt. Beavatkozás nélkül végig tudtam futtatni egy receptet.
35
18.
ábra. Teszt összeállítás
10. HMI felület Mivel a program egy valódi ipari berendezéshez készült, a legegyszerűbb ha a megrendelő számára átadott kezelési leíráson keresztül mutatom be a HMI felületet.
10.1. Kezdőképernyő A berendezés bekapcsolása után az alábbi kép jelenik meg az érintő képernyőn. A Kezdő képen 2 gomb található, Setting és Process.
36
19.
ábra. A kezelőfelület kezdőképernyője
A Setting gomb megnyomására a főzési paraméterek megadására – recept készítésére – szolgáló felületre irányít a program. A Process gomb megnyomására a főzés lefolyását vezérlő, ellenőrző felületre irányít a program.
10.2. Recept írása A kezdő kép Setting gombját megnyomva a recept választási képernyő nyílik meg, ahol 8 recept mező található.
20.
ábra. Recept választási képernyő
A módosítani kívánt recepthez tartozó mező megnyomására megnyílik a kiválasztott recepthez tartozó beállítási képernyő. A Back gombbal visszatérhetünk a Kezdő képernyőre. A kiválasztott recept írása, módosítása:
37
21.
22.
ábra. Recept írási képernyő
ábra. Beíráshoz használható billentyűzetek
Fent középen a sorszám utáni területet megérintve felugrik egy billentyűzet, mely segítségével megadható a recept neve maximum 8 karakter hosszan. A képernyő többi részén 2*6 mező található, ezeket megérintve a felugró szám billentyűzet segítségével megadhatók az elérni kívánt hőmérsékletek (SP1..SP6) °C-ban és a hőn tartási idők (t1..t6) percben. A bal felső sarokban található nyíllal visszatérhetünk a Recept írás képernyőre, a jobb felső sarokban lévő nyilat megérintve a következő recept beállítási képernyőjére jutunk. Ha nem kívánjuk használni mind a 6 lépést, akkor a kihagyott lépés idejét 0 percre állítsuk, a hozzá tartozó hőmérséklet értékének a következő értéket vagy az előző és a következő érték közti, az előzőnél legalább 1 °C-al magasabb értéket kell megadni (a kezdő szakasz kiválasztása miatt). Az érték megadás helyességét a program nem ellenőrzi!
10.3. Recept kiválasztása A Kezdő képernyőn a Process gombra kattintva először a Recept kiválasztó képernyőre jutunk. 38
23.
ábra. Recept kiválasztó képernyő
A + és - gombokkal válthatunk a receptek között, a kiválasztott recept neve bal oldalt középen sárga színnel jelenik meg. A Load gombot megnyomva a kiválasztott recept betöltődik a programba. Ha a recepten változtattunk, újra be kell tölteni! Az aktuálisan betöltött recept neve a képernyő felső részén fehér színnel van írva. A bal felső nyíl a Kezdő képernyőre visz, a jobb felső nyíl a Folyamat képernyőre léptet. Ha a már korábban kiválasztott, és azóta nem módosított recept szerinti programot akarja lefuttatni, nem szükséges a recept újbóli betöltése. Ekkor a jobb felső nyíl megnyomásával egyből a folyamat képre léphet.
10.4. Folyamat képernyő
24.
ábra. Folyamat képernyő alapállapot
A Folyamat képernyőn fent középen az aktuálisan betöltött recept neve található. Középen a PV felirat mellett piros számmal a tartályban mért hőmérséklet jelenik meg. Alatta az SV felirat mellett a tartani kívánt 39
hőmérséklet sorszáma és értéke látható zöld színnel. Legalul a t felirat mellett az aktuális hőn tartási szakasz sorszáma és a hátralévő idő található sárga színnel. Felfűtési szakaszban ez az idő csak tájékoztató jellegű, lejárat után újraindulhat a számláló. A bal alsó sarokban lévő START gombot megnyomva elindul a főzési folyamat. Ezt a felette megjelenő RUN felirat is jelzi. A bal felső sarokban lévő gomb a Kezdő képernyőre visz.
25.
ábra. Folyamat képernyő aktivált elemekkel
A főzési folyamat elindítása után a START gomb helyén STOP gomb, felette a RUN felirat jelenik meg. A STOP gomb megnyomására a folyamat leáll. A folyamat aktuális állapota megállításkor nem tárolódik, a következő indításkor a program a legelejéről indul. Futás közben a képernyő bal oldalán a RUN felirat felett megjelenő jel mutatja, hogy hőmérséklet növelési szakaszban van-e a program.
vagy hőmérséklet tartási
10.5. A HMI felület memória használata A HMI felület a következő adatokat éri el a PLC-n belül. Ezeket a folyamat képernyőn való kijelzésre használja fel. 4. táblázat. A HMI felület szimbólumtáblázata Név
HMI_ID
PLC_ID
Adattípus
Címtípus
Cím
t_ACT
0
0
Word
D
121
SP_ACT
0
0
Word
D
122
ENABLE
0
0
Bit
W_bit
0.15
REC_IN
0
0
Bit
W_bit
10.03
40
PV
0
0
Word
D
0
t_NUM
0
0
Word
D
120
SP_NUM
0
0
Word
D
120
futes_hiba
0
0
Bit
W_bit
2.15
futes
0
0
Bit
CIO_bit
100.00
NAME
0
0
Word
D
1016
R_ST
0
0
Bit
CIO_bit
0.00
A receptek a HMI-n belül az RW memóriaterületen tárolódnak. Minden recept 30 szót foglal el, így az első recept az RW0 helyen kezdődik és az RW29 memória helyen ér véget. Az első receptben a következő változók a következő helyeken tárolódnak: t1-től t6-ig az idők RW0-tól RW5-ig, 1 szó hosszú BCD változóként, SP1-SP6-ig, tehát a hőmérséklet értékek az RW10-től RW21-ig, 2 szó hosszú valós típusként és RW26-RW29-ig 4 szóban a recept neve tárolódik. A megfelelő változók 30 szóval eltolva kerülnek tárolásra a következő receptekhez, így a második recept RW30-nál kezdődik, a harmadik recept RW60-nál és így tovább értelemszerűen. A recept betöltésekor a receptnek megfelelő 30 szónyi adat a PLC D90-D119 memória területére íródik be ugyan abban a sorrendben, ahogy a HMI-ben is szerepelnek. A változók közötti hézagok véletlenszerű adatokkal vannak feltöltve és ugyanúgy átíródnak betöltéskor, ezért ezeket a változókat a PLC-ben kerülni kell.
10.6. Hibajelzés és kezelés A jobb felső sarokban 2 visszajelző található. A zöld alapon lévő H betű akkor látható, ha a készülék fűtési jelet ad ki. A piros alapon lévő A betű akkor látható, ha a fűtési jel ellenére a fűtőszál mágnes kapcsolója nincs bekapcsolt állapotban. Normál üzemben a fűtés bekapcsolásakor is felvillanhat, de ez nem probléma. Ha folyamatosan látható 2 eset lehetséges: A fűtő köpenyben a nyomás túl nagy, vagy a mágneskapcsoló vagy annak kiegészítő eleme tönkrement. A túlnyomásról a tartály tetejére szerelt mutatós műszerre pillantva győződhetünk meg. Vagy várunk, míg a nyomás csökken vagy a szelepet megnyitva csökkentünk rajta. Ha utóbbi mellett döntünk, körültekintően járjunk el, a szelepen át forró gőz távozik, amely égési sérülést okozhat! Újabb főzés indítása előtt ellenőrizzük a köpenyben a vizszintet, ha a szükségesnél alacsonyabb, akkor pótoljuk. Meghibásodás esetén a készülék ajtaját csak megfelelő képzettséggel ellátott szakember nyithatja ki, abban munkát csak ő végezhet. A 41
készülék feszültség alatt van! Munkavégzés az érvényes szabályok betartásával történhet.
10.7. Egyszerűség Amint látható a vezérlő felületen nincsenek figyelmeztetések, tiltások a felhasználó számára, egyetlen teljes jogú felhasználó van csupán. A berendezés rendeltetése, hogy különböző recepteket lehessen kipróbálni, éppen ezért az egyszerű módosíthatóság érdekében ez tűnt célszerűnek. A recepteket bárki, akár főzés közben is átírhatja. Főzés közben a felhasználó a Folyamat képernyőt látja, így rögtön láthatja, hogy a folyamat el van-e indítva, más képernyőkre csak innen viszalépve jut el. A recept átírása az aktuális folyamatban még így sem okoz problémát, hiszen azt a Recept kiválasztó képernyőn be is kell tölteni. Betöltés nélkül a PLC-ben tárolt adatokkal a főzési folyamat zavartalanul lezajlik. Egy kis üzemben joggal bízhatunk abban, hogy nem áll szándékában senkinek elrontani a műveletet.
11. A 2 mérős elrendezés A legegyszerűbb továbbfejlesztési lehetőség, ha a köpenyben is elhelyezünk egy hőmérséklet érzékelőt. Mivel hőmérséklet szabályozásról van szó és ez az egyik legnagyobb fekete folt az eredeti megoldásban, célszerű ezt választani. Ha a belső tartályban elhelyezünk egy érzékelőt, ami méri a benne lévő cefre térfogatát − egy folyadékszint érzékelővel és a tartály méreteinek ismeretében kiszámítható −, ez az adat felhasználható arra, hogy ne csak teljes mennyiség főzésére használhassuk a főzőnket, hanem kisebb mennyiségekhez is. A minimális mennyiséget az határozza meg, hogy a keverőnek és a hőérzékelőnek bele kell érnie a folyadékba. A fix mennyiség helyére egyszerűen ezt az adatot helyettesítjük be a számolásokba. Utóbbival nem foglalkozom, mert a plusz hőmérséklet adat sokkal érdekesebb ennél, érdemes azt körüljárni.
11.1. Fizikai modell Amennyiben a köpenyben lévő víz hőmérsékletét is tudjuk, olyan programot készíthetünk, amely kiszámolja a kiegyenlítődés utáni közös hőmérsékletet (Tk). A hőérzékelőt a tartály aljához közel kell elhelyezni a köpenyen belül, hogy mindenképpen a vízben legyen és ne érjen a vízszint fölé, például a fűtőszál magasságában. Mivel a köpenyben nincs keverés, csak a természetes konvekció általi keveredésre számíthatunk, a legjobb, ha a fűtőszál és az azzal ellentétes oldal közé tesszük.
42
A következő egyenletből indulunk ki
c * m1 * ΔT 1 = c * m2 * ΔT 2 ahol
ΔT i = ||T k − T i|| .
Mivel a belső tartály hőmérséklete (T1) általában kisebb, mint a Tk, ezért
ΔT 1 = T k − T 1 és a köpeny hőmérséklete általában magasabb, mint Tk, ezért
ΔT 2 = T 2 − T k Ezt behelyettesítve azt kapjuk, hogy
Tk =
m1*T 1+m2*T 2 m1+m2
.
Ha a tartály anyagának a hőkapacitását is beleszámoljuk, akkor érdemes az alábbi egyenletből kiindulni, melyben a bal oldalon az állandósult helyzet, jobb oldalon a kezdeti állapot található
cv * (m1 + m2) * T k + ca * ma * T k = cv * m1 * T 1 + cv * m2 * T 2 + ca * ma * T a ahol
cv - a víz fajhője ca - az acél fajhője m1 - a belső tartályban lévő víz tömege m2 - a köpenyben lévő víz tömege ma - az acél tartály tömege Ti - az adott rész hőmérséklet különbsége 0 °C-hoz képest.
Mivel az acél tartály hőmérsékletét nem tudjuk mérni, ezért erre a következő becslést teszem
Ta =
T 1+3*T 2 4
.
Az egyenletet rendezve a következőt kapjuk
Tk =
cv*m1*T 1+cv*m2*T 2+ca*ma* cv*(m1+m2)+ca*ma
T 1+3*T 2 4
Ezek után mindössze addig kell bekapcsolva tartani a fűtést, míg a közös hőmérsékletet el nem érjük. Innentől már csak meg kell várni, míg a két tartály hőmérséklete kiegyenlítődjön.
11.2. Gőzképződés Felvetődik a kérdés, hogy mi történik akkor, ha a köpenyben felforraljuk a vizet és gőz képződik. Mivel zárt rendszer, ezért a víz fölött a gőz nyomása növekedni fog, legalábbis addig, míg a lefújó szelep el nem 43
engedi egy szint fölött. A nyomás növekedésével a víz forráspontja is emelkedik, 100 °C-nál magasabb hőmérsékletű vizünk lesz. A gőz által tárolt hőt azonban nem tudjuk meghatározni ebben a berendezésben. A betáplált hő alapján is csak a maximumára tudunk következtetni, mivel a betáplált hő nem csak gőz formájában raktározódik, de fedezi a veszteséget és az tartály anyagának melegedését is. Két megoldást választhatunk. Az egyik, hogy az első felfűtéskor nem teljesen Tk-ig melegítjük a rendszert, hanem egy alacsonyabb hőmérsékleten megállunk és mikor már kezdjük megközelíteni Tk-t, csak akkor kapcsoljuk vissza a fűtést. Másik lehetőség, hogy elfogadjuk az ebből adódó túllövést. Nyilván utóbbi a rosszabb lehetőség, hiszen épp az a célunk, hogy ez a túllövés ne legyen vagy 0,5-1 °C-nál kisebb legyen. Mindkét esetben célszerű a kész rendszeren egy tesztet végezni, melyben addig forraljuk a köpenyben a vizet, míg a nyomás leeresztő szelep ki nem nyit. Ekkor kikapcsolni a fűtést és mérni a hőmérsékletet a két tartályban. Amíg a köpenyben a hőmérséklet el nem kezd csökkenni, addig feltételezhetjük, hogy a gőz lecsapódása fedezi a belső tér hőmérsékletének növekedését. A belső tér hőmérsékletének növekedése ezen időtartam alatt megegyezik a túllövés maximális értékével, illetve ennyivel célszerű az első megoldásban Tk hőmérséklet előtt megállni.
11.3. Működés A program során, mivel szinte folyamatosan szükség van rá, minden egyes lefutáskor kiszámoljuk a közös hőmérsékletet a fenti képletet használva. Amennyiben felfűtési szakaszban tartunk és a közös hőmérséklet alacsonyabb a cél hőmérsékletnél, akkor bekapcsoljuk a fűtést és várakozunk a hőmérséklet növekedésére. Amikor a közös hőmérséklet elérte a cél hőmérsékletet, kikapcsoljuk a fűtést. Hogy a gőzképződésből eredő túllövést elkerüljük és a cél hőmérséklet kisebb 95 °C-nál, akkor a köpenyben a 100 °C elérésekor a fűtést letiltjuk, míg vissza nem csökken 95-re. 95 °C vagy a fölötti cél értéknél megengedhetjük, hogy a köpenyben 100 °C fölé menjen a hőmérséklet. Ezt addig ismételgetjük − természetesen vigyázva arra, hogy a relét ne kapcsolgassuk akkora frakvenciával, amit már képtelen követni −, míg a belső tartályban lévő hőmérséklet el nem éri a cél hőmérsékletet, ekkor átválthatunk hőntartási szakaszra. Hőntartási szakaszban figyeljük a közös és a belső hőmérsékletet, amennyiben valamelyik az alsó küszöb alá esik bekapcsoljuk a fűtést és a közös hőmérsékletet a felső küszöbig emeljük. Ezek a küszöb értékek lehetnek ±0,1-0,2 °C-al a cél közelében. Ekkora hőmérséklet ingadozást a sör még elvisel. A kapcsolások számát drasztikusan lecsökkentjük és ezzel a technológiánk élettartamát növeljük. A hőntartási idő leteltével a következő felfűtési szakaszra válthatunk.
44
12. Összefoglalás Dolgozatomban bemutattam a sörfőző berendezést, a használt eszközöket és szoftvereket, azt hogy hogyan csinálják mások. Létrehoztam egy modellt, ami alapján levezettem egy lehetséges megoldást, majd megvalósítottam. Összefoglaltam az általam készített program működését, megmutattam, hogyan gondolkoztam a készítés során, milyen fontosabb részletei vannak a programnak. A HMI felületen keresztül a kezelés menete került ismertetésre. Végül megmutattam, hogyan lehet bővíteni, javítani a berendezést úgy, hogy az automatizálásra pozitív hatással legyen.
13. Summary In my thesis, I have presented the brewer equipment, the used tools and the softwares, and that how others brew beer. I've designed a modell, a possible solution, and then I made it real. I have summarized how my program works, and shared my toughts from the working process, and my wiews on what are the most important parts that the program have. I also discribed the handling of the program on the HMI interface. Finally, I have showed how it is possible to extend and upgrade the equipment in order to have a positive effect on the automation.
45
14. Köszönetnyilvánítás Dr. Raffay Csaba - egyetemi adjunktus Témavezetőként sok segítséget adott a dolgozat megírásához. Bátran fordulhattam hozzá a kérdéseimmel, mindig szakított rá időt. Ködöböcz József - Micro-Max Kft tulajdonos, ügyvezető A szakmai gyakorlati hely és a téma biztosításáért. Sok gyakorlati tapasztalattal lettem gazdagabb mind a közvetett, mind a közvetlen segítségével.
46
15. Irodalomjegyzék 1. dr. Vásony Lajos, A sör készítése, http://www.kfki.hu/~cheminfo/hun/teazo/sor.html (2014.10.07.) A kémia és vívmányai, II. rész, Kir. Magy. Természettudományi Társulat, Budapest, 1940, 196-199. o. 2. http://serneveles.hu/torvenyi-szabalyozas (2014.11.16.) 3. http://s73.photobucket.com/user/mrbowenz/media/CAC_6652copy. jpg.html (2014.11.22.) 4. http://ziptechnologies.eu (2014.11.15.) 5. Ajtonyi István, PLC és Scada-HMI Rendszerek I., Aut-Info Kft., Miskolc, 2007. október 6. Omron magyar nyelvű weboldal http://industrial.omron.hu/hu/home (2014.11.23.) 7. Omron CP1L-EL/EM CPU Unit Operation Manual, Cat. No. W516-E1-01, 2012. március 8. Weidmüller online katalógus, http://catalog.weidmueller.com/catalog/Start.do?localeId=en_DE&O bjectID=8594820000 (2014.11.19.)
47
16. Melléklet
48