Alkalmazott Informatikai Tanszék
Termelésprogramozási feladatok szimulációra alapozott vizsgálata Szakdolgozat
Korbély Gábor CK6V1H 3525, Miskolc Napfürdő utca 17.
Köszönetnyilvánítás Ezúton szeretném megragadni az alkalmat, hogy köszönetemet és tiszteletemet fejezzem ki mindenkinek, aki a diplomamunkám elkészítéséhez hozzájárult. Végig inspirálóan hatottak rám egyetemi éveim alatt a termelésinformatikai tanulmányaim oktatói, mind tudásuk, mind előadásmódjuk. Tanulmányaim alatt nyilvánvalóvá vált az informatikai tudományok és a termelés tervezésének és irányításának összefonódása. Ezért szeretnék köszönetet mondani Prof. Dr. Tóth Tibor és Dr. Kulcsár Gyula tanáruraknak az átadott tudásért. Dolgozatom felépítésének segítéséért, támogatásáért és precízségéért ezúton szeretnék külön köszönetet mondani konzulensemnek Dr. Kulcsár Gyula tanár úrnak. Tisztaszívvel köszönöm családomnak a sok gondoskodást, ami elkísért a tanulmányaim során. Hálásan köszönöm kitartó türelmüket és a mindennapi feladatokban nyújtott segítségét. A szakdolgozatomban bemutatott munka a TÁMOP-4.2.1.B-10/2/KONV2010-0001 jelű projekt részeként az Európai Unió támogatásával, az Európai Szociális Alap társfinanszírozásával valósult meg.
EREDETISÉGI NYILATKOZAT
Alulírott………………………………………………….; Neptun-kód:…………….......... a Miskolci Egyetem Gépészmérnöki és Informatikai Karának végzős ……………. szakos hallgatója ezennel büntetőjogi és fegyelmi felelősségem tudatában nyilatkozom és aláírásommal igazolom, hogy ……………………………………………………………………………………………… című szakdolgozatom/diplomatervem saját, önálló munkám; az abban hivatkozott szakirodalom felhasználása a forráskezelés szabályai szerint történt. Tudomásul veszem, hogy szakdolgozat esetén plágiumnak számít: -
szószerinti idézet közlése idézőjel és hivatkozás megjelölése nélkül; tartalmi idézet hivatkozás megjelölése nélkül; más publikált gondolatainak saját gondolatként való feltüntetése.
Alulírott kijelentem, hogy a plágium fogalmát megismertem, és tudomásul veszem, hogy plágium esetén szakdolgozatom visszautasításra kerül.
Miskolc,.............év ………………..hó ………..nap
…….……………………………….… Hallgató
Tartalomjegyzék Köszönetnyilvánítás Eredetiségi nyilatkozat 1. Bevezetés……………………………………………………………...……………...4 2. Diszkrét esemény-vezérelt szimuláció……………………………..…….………...5 2.1. Szimulációs lehetőségek………………………………………....….………….6 2.2. A szimulációs eljárás metodikája…………………………………...………….7 2.3. Diszkrét esemény-vezérelt rendszerek……………………………..………....8 2.4. Diszkrét események szimulációjának építőelemei…………………...……....9 3. Megközelítési mód és eszköz kiválasztása a szimulációhoz..……….…..........11 3.1. Szimulációs rendszer kiválasztása, összehasonlítása…………................12 4. Plant Simulation……………………………………………………….……............14 4.1. Termék életciklus-menedzsment………………………………....................14 4.2. A Plant Simulation bemutatása……………………………………................15 5. Az épített modell…………………………………………………………......…......18 5.1. A forrás, a nyelő és a pufferek..........................................…………...........20 5.2. Anyagszállítás………………………………………………………….............25 5.3. A gépek………………………………………………………………......…...…26 5.4. Gépek paraméterezése...……………………………………….....……….....27 5.5. Eseményvezérlő................……………………....…………….…..……….…30 5.6. Műszakbeosztás…………..........................................................................31 5.7. A modell működés közben………………………………………………….…31 6. Flow Shop (FS) modellek..…………………….……………………….....……….32 6.1. Flexible Flow Shop………………………………………………......…………33 6.2. Extended Flexible Flow Shop…………………………………......…………..34 6.3. EFFS a szimulátorban………….…………………………………....…..…….36 7. Szimulációra alapozott termelésprogramozás....…………………....…………..38 8. Szimulációra alapozott vizsgálatok………………………………....……………..40 8.1. Statisztikák…………………………………………………………….......……40 8.2. Diagramok…………………………………………………………….......…….42 8.3. Sankey-diagram……………………………………………………...........…...43 8.4. Szűk keresztmetszet…………………….....................................................44
8.5. Szimulációs kísérletek………………………....……………………………....46 9. Eredmények és következtetés……………………………………………………..49 Összefoglalás...................................................................................................50 Summary..........................................................................................................51 Irodalomjegyzék...............................................................................................52 Ábrajegyzék.....................................................................................................53 Táblázatok jegyzéke.........................................................................................54 CD melléklet tartalma.......................................................................................55
Termelésprogramozási feladatok szimulációra alapozott vizsgálata
1. Bevezetés Az iparvállalatok egyik fő célkitűzése a hatékonyság növelése, a költségek csökkentése, illetve a termelési rendszerek és folyamatok optimalizálása (a vállalat teljesítőképességének növelése) érdekében. Adott gyártórendszerünk teljesítményének növelésére az egyik lehetséges megoldás, ha a rendszert modellezzük, ezáltal megfigyeljük viselkedését, kiértékeljük működésének eredményeit. A rendszermodell a valóságos rendszer egyszerűsített, annak a vizsgálat szempontjából lényegi tulajdonságait kiemelő leképezése. Jelen dolgozatban a rendszermodell, amely számunkra fontos. Ez a valóságos rendszer egyszerűsített, annak a vizsgálat szempontjából lényegi tulajdonságait kiemelő leképezése, amely elhanyagolja mindazokat a jellemzőket, amelyek a kitűzött vizsgálat szempontjából nem meghatározóak. Dolgozatomban a kombinált modellek egyik típusával, a szimulációs modellekkel foglalkozom. Ezen belül is a diszkrét esemény-vezérelt szimuláció (DES – Discrete Event Simulation) azon módszereire helyezem a hangsúlyt, amelyek támogatják termelési folyamatok és rendszerek irányításának vizsgálatát. Napjainkban már meglehetősen sokszínű azoknak a szoftvereknek a kínálata, amelyekkel szimulálhatók (tervezhetők, vizsgálhatók) az új rendszerek megvalósításuk előtt, vagy akár létező gyártórendszerek is elemezhetők, továbbfejleszthetők. A dolgozatomban a Siemens által védjegyezett szoftver a PlantSimulation segítségével szeretném bemutatni a szimuláció fontosságát a termelésprogramozási feladatok megoldásában. Ez egy diszkrét, eseményvezérelt szimulációs rendszer. Jelenleg az egyik legösszetettebb ilyen rendszer, amely magában foglalja többek között komplex gyártórendszerek és vezérlési rendszereik
szimulációjának
rendszerparaméterek teljesítménymutatók
építőelemeit;
optimalizálásához; megjelenítésére
(pl.
genetikus
grafikonokat az
algoritmusokat
a
diagramokat
a
és
erőforrások
és
a
szűk
keresztmetszetek elemzéséhez). A modellezési és a vizsgálati módszerek használatának tanulmányozásához és demonstrálásához egy fiktív, egyszerűsített rugalmas gyártósor modelljét definiálom azzal a céllal, hogy külső forrásból származó termelési finomprogramok végrehajtását szimulálja és értékelje.
~4~
Termelésprogramozási feladatok szimulációra alapozott vizsgálata
2. Diszkrét esemény-vezérelt szimuláció 2.1 Szimulációs lehetőségek Mielőtt belekezdek a diszkrét események, és ezek szimulációjának vizsgálatába, megemlítenék néhány fogalmat, hogy egyértelműsítsem mi a célja ennek a szakdolgozatnak. Az első és legfontosabb ilyen fogalom talán maga a modell fogalma. A modellek az objektív valóság többé-kevésbé hű leképezéseinek tekinthetők. A modellezés a balóságos rendszer lényegi tulajdonságainak felismerését és azok valamilyen formájú leképezését jelenti. Amint elértük az úgynevezett „jó” modellt, elhagyhatóvá válik a különbség rendszer és modell között, és a kifejezések felcserélhetővé válnak. A szimuláció ezen belül az a modelltípus, amelynél egy rendszer vagy egy folyamat másolatát hozzuk létre azzal a céllal, hogy kísérleteket végezzünk a segítségével [1]. Azaz amíg a modell magát a rendszert ábrázolja, addig a szimuláció a rendszeren végbemenő állapotváltozások időbeli sorozatát írja le. A
gyakorlatban
a
szimulációnak
nagyon
széleskörű
felhasználási
lehetőségei vannak. Ilyen helyzet lehet a bizonytalanságkezelés, azaz amikor döntéshozatal során részleges, vagy közelítő információval kell dolgoznunk. Egy másik fontos terület lehet a váratlan események bekövetkezésének vizsgálata, illetve a váratlan eseményekre készített forgatókönyvek kiértékelése.
1. ábra A szimuláció és a termelésinformatikai rendszerek kapcsolata
~5~
Termelésprogramozási feladatok szimulációra alapozott vizsgálata Azt mondhatjuk, hogy a szimulációnak mindenütt helye van, ahol egyszerű metódusok már nem adnak használható eredményeket. Illetve ahol a valós rendszeren végzett kísérlet megvalósítása komoly nehézségekbe ütközik vagy lehetetlen (túl drága lenne, túl kockázatos, vagy szimplán azért, mert még nem létezik a rendszer). Természetesen nem minden esetben célszerű szimulációt alkalmazni, lézhetnek, olyan túlságosan összetett rendszerek ahol nem lehet pontos szimulációt készíteni. Egy másik ilyen helyzet lehet, ha egy valós rendszer gépeinek kihasználtsága már jelenleg is túl magas (~100%), mivel ott úgysem lehetséges javulást elérni, vagy csak elenyésző javulást lehet elérni. Egyik olyan terület, ahol a szimulációt gyakran felhasználják, az olyan rendszerek vizsgálata, ami még nem létezik (Ez egyúttal magába foglalja az új rendszerek tervezését is). Itt beszélhetünk olyan témákról, mint például új beruházások indokoltságának bizonyítása (ez lehet csak egy új gép, vagy akár egy teljes sor). Bővebben megfogalmazva; ha egy vállalat, amely felvetette annak az ötletét, hogy még egy gyártósort szeretne létrehozni, de nem biztosak a döntésükben, akkor egy jól elkészített szimulációval alá lehet támasztani a döntés helyességét vagy helytelenségét. Egy új rendszer, vagy beruházás nagy anyagi költségekkel jár, ezért fontos a megbízható, megalapozott döntés meghozatala. Másik fontos terület, ahol előszeretettel alkalmazzák a szimulációt, az a már létező rendszerek. Ilyen esetekben is felhasználható a szimuláció az új beruházásokkal kapcsolatos döntések elemzésére. Illetve, ha más kisebb, nagyobb változásokat szeretnénk végrehajtani a rendszerben (érzékenység analízis – „mi lenne ha…” elemzések), akkor ezek hatása letesztelhető a segítségével. Szimuláció segítségével tesztelni lehet egy valós rendszer működését,
működési
előrejelzését.
Segítségével
lehetséges
a
rendszer
„maximális” gyártmánykibocsájtó képességének meghatározása, szűk gyártási keresztmetszetek
megállapítása,
vagy
akár
üzemzavarok hatásainak vizsgálatára.
~6~
a
rendszerben
előfordulható
Termelésprogramozási feladatok szimulációra alapozott vizsgálata Egy másik nem szorosan ide tartozó, de mégis fontos felhasználási lehetősége a szimulációnak az a valós rendszerek működésének oktatása. Ez azért is nagyon fontos, mert egy újonnan érkező, a rendszer fejlesztésében nem résztvevő szakértőnek is ismernie kell a rendszer működését, ahhoz, hogy hatékonyan tudjon dolgozni benne. 2.2 A szimulációs eljárás metodikája A 2. ábra a szimulációs modell használatának fontos lépéseit mutatja. A folyamat jól elkülöníthető részekből áll, melyek szoros kapcsolatban vannak egymással. Sok hasonlóság fedezhető fel a rendszer modellezésének folyamata és a szoftverfolyamat modelljei között.
2. ábra A modellezés folyamata
Első lépésként be kell határolni a modellezni kívánt rendszert a szimuláció céljainak
megfelelően.
Az
absztrakció
során
a
kívánt
eredmények
figyelembevételével kell megállapítani a modell határait, mivel a túl részletes modellalkotás rendkívüli idő- és adatigénnyel járhat, a gyors, de nem elegendően pontos modellalkotás pedig kétségessé teheti a kívánt eredmények kalkulációját. Egyúttal fontos ellenőrizni, hogy a modell megfelel-e a valóságnak.
~7~
Termelésprogramozási feladatok szimulációra alapozott vizsgálata A modell megépítése után iterációs eljárás keretében pontosíthatók a modell beállításai és paraméterei. A futtatások eredményeként kapott értékek értelmezése után a szimulációs eljárás során tapasztaltakat átültethetjük a gyakorlatba.
2.3 Diszkrét esemény-vezérelt rendszerek Diszkrét
esemény-vezérelt
rendszerrel
számos
alkalmazásban
találkozhatunk, ilyenek lehetnek a közlekedési rendszerek, adatbázis kezelő rendszerek,
kommunikációs
protokollok,
és
a
számunkra
legfontosabb,
gyártórendszerek [2]. Ezek a rendszerek események hatására változtatják állapotukat
és
feltételezzük,
hogy
ezek
az
események
pillanatszerűen
következnek be (diszkrét időpillanatokban). A Diszkrét Eseményű Rendszerek (DES – Descrete Event Systems) olyan diszkrét
állapotokkal
rendelkező,
eseményvezérelt
rendszerek,
melyek
állapotának időbeli alakulása teljes mértékben az aszinkron események bekövetkeztétől függ. Jellemzők: Az állapottér diszkrét: X = {S1, S2,. . . , Sn } Az állapotok közti átmenetet aszinkron módon bekövetkező események (e) befolyásolják.
3. ábra Diszkrét eseményű állapottér [3]
~8~
Termelésprogramozási feladatok szimulációra alapozott vizsgálata Ezek az említett események tehát aszinkron módon, pillanatszerűen következnek be. Illetve állapotátmenetet eredményez(het)nek. Irányítás szempontjából megkülönböztethető irányítható és nem irányítható események. Utóbbiak a felügyelt irányítástól függetlenül bekövetkezhetnek (pl. szenzorok eseményei), amíg az irányítható események bekövetkezését az irányítás megakadályozhatja, gátolhatja (pl. beavatkozó szervez eseményei).
2.4 Diszkrét események szimulációjának építőelemei A 4. ábra a modellezés felosztását mutatja, melyben más színnel jelöltem azt a változatot, amellyel a jelen dolgozat foglalkozik. Ez pedig a diszkrét digitális szimulációs modellezés.
4. ábra A modellezés felosztása [5]
A fő különbség a diszkrét és a folytonos digitális szimulációs modellezés között az, hogy amíg a folytonosnál a modellezés során a mintavételezés olyan sűrűn történik (olyan kis mintavételi idővel), hogy a számítási eredmények (kimeneti adatok) a vizsgált rendszer szempontjából folytonosnak tekinthetők. A diszkrét események szimulációjánál viszont az események már idő paraméterrel is rendelkeznek.
~9~
Termelésprogramozási feladatok szimulációra alapozott vizsgálata A
paraméterek
értékének
megadásától
függően
három
típust
különböztethetünk meg: - Determinisztikusnak nevezzük azt a szimulációs alváltozatot, amely során a szimuláció paramétereit rögzített értéknek tekintjük. - Sztochasztikus esetben a paramétereket a matematikai statisztikai jellemzőkkel adjuk meg ( eloszlás típus, várható érték, szórás, stb.). A szimulációs szoftver ezen adatok felhasználásával állít elő a futtatások során pszeudo - véletlen számokat. -
Kvázi-determinisztikus
esetben
az
ismert
eloszlásból
bizonyos
előre
meghatározott konfidencia-szint figyelembe vételével a sztochasztikus adatokat determinisztikus értékekké alakítjuk. [5] Egy DES modell hogy ábrázolja a rendszer változóit és annak logikáját, hogy mi történik egy esemény bekövetkezésekor, - Óra eszközt – Ennek segítségével követi a szimuláció az idő múlását. Diszkrét esemény szimulátorban az idő „ugrál”, mert az események azonnal végbemennek. Tehát az idő szeletekre van bontva, és egy szelet addig tart, amíg a hozzá rendelt esemény végre nem hajtódik és a következő el nem kezdődik. Ezek mellett magunk is adhatunk meg idő szeleteket, ami alatt a szimulációt vizsgálni akarjuk. - Esemény lista – A szimuláció tartalmaz legalább egy listát szimulációs eseményekről. Ezeket más néven függő események listájának is nevezik, mert általában a még meg nem történt esemény bekövetkeztétől függnek. Ez a lista az események bekövetkezésének ideje szerint van egy prioritási sorba rendezve. - Entitás – Az entitások (vagy alkatrészek, félkész termékek) szintén sorokban várakoznak, amíg nem hajtódik végre az esemény, amire várakozik. Ezek rendelkezhetnek különböző tulajdonságokkal, mint kód, méret, súly, prioritás, lejárat. - Véletlen szám generátor – Sztochasztikus paraméter megadáskor használják főként. Az egyik probléma, amikor használják, hogy az események idejének nem mindig tudjuk előre az állandósult eloszlását. Illetve a selejtarányok is véletlen eloszlás szerint határozhatóak meg. - Statisztikák – A szimulátorok képesek az eredményeket összevetni és megjeleníteni, ezzel elemzéseket, statisztikákat készíthet a rendszerről.
~ 10 ~
Termelésprogramozási feladatok szimulációra alapozott vizsgálata - Záró feltétel – A tervezőnek rendelkeznie kell arról, hogy a szimuláció meddig tartson (különben a végtelenségig haladna előre), ezért a megfelelő kondíció illetve leállító feltétel meglétéről is gondoskodni kell [4].
3. Megközelítési mód és eszköz kiválasztása a szimulációhoz Képzeljük el, hogy egy tervező, vagy mérnök feladatául kapja, hogy szimuláljon egy rendszert, ekkor az első kérdés, ami felmerülhet, hogy milyen eszközökkel hajtsa végre a szimulációt. Ekkor alapvetően két út áll ilyen esetben előtte. Az egyik, hogy valamilyen programozási nyelvet használ, és ezek különböző beépíthető függvénykönyvtárai segítségével „építi meg” a modellt. Ezzel egy nagyon nagymértékben paraméterezhető, személyre szabható modell készíthető, viszont programozási tudás, és sok időre van szükség hozzá. A másik lehetősége a grafikus felülettel rendelkező szimulátorok, melyek ugyan kevés programozást igényelnek, de nem lehet oly mértékben testre szabni, mint egy programozási nyelv használatakor. Megjelentek ezek kombinált változatai is (a hibrid rendszerek), melyek egyesítik az előnyös tulajdonságokat, nevezetesen a személyre szabhatóságot a grafikus felület gyorsaságával. Jelen dolgozatban is egy ilyen eszközt választottam a vizsgálatokhoz, melynek neve a bevezetőben már említett Plant Simulation. Erről később részletes összefoglalást adok, de előbb nézzük, hogy miért erre esett a választásom.
~ 11 ~
Termelésprogramozási feladatok szimulációra alapozott vizsgálata 3.1 Szimulációs rendszer kiválasztása, összehasonlítása Összegyűjtöttem néhány jelentősebb rendszer szimulátor összevetése, a felhasználó számára legfontosabb tulajdonságaikkal. A táblázat elkészítéséhez egy kisebb kutatómunkát végeztem, és annak alapján választottam ki (illetve elemeztem) ezt a néhány rendszert. Az egyes tulajdonságok 0-5 közötti értékkel lettek pontozva, ahol 0 az elvárások teljesítésének teljes hiányát, az 5-ös pedig a teljes kielégítését jelenti. [6] Modellépítési struktúra: Szoftver
Elemek hozzáférhetősége
Felhasználó Hierarchikus által készített modellépítés és kezelt változók és tömbök
Öröklődés
Modell újrafelhasználhatóság
Modularitás Elemek által felhasznált erőforrások
PlantSim
5
5
5
5
5
5
4
Extend
4 5 3
5 4 3
4 5 4
1 0 0
5 5 3
3 5 2
4 1 0
4 4 4
3 2 3
4 4 3
3 0 2
5 5 5
2 2 5
5 4 3
FlexSim Micro Saint Quest SimCad WorkBench
1. táblázat Modellépítési struktúra
Felhasználó által meghatározott elemek: Beépített elemek kiterjeszthetősége
Felhasználó által készített elemek támogatása
PlantSim
5
5
5
5
Extend FlexSim Micro Saint
5 5 0
4 5 2
5 5 1
5 5 0
Quest SimCad WorkBench
5 5 5
0 0 2
0 0 1
0 0 5
Szoftver
Felhasználó Felhasználó által által készített készített elemek elemek újrafelhasználhatósága minősége
2. táblázat Felhasználó által meghatározott elemek: Felhasználó által meghatározott elemek
~ 12 ~
Termelésprogramozási feladatok szimulációra alapozott vizsgálata Külső alkalmazással való együttműködése: Adatbázissal való táblázattal való együttműködés Összeköttetés más együttműködés nyelvekkel
Szoftver PlantSim Extend FlexSim Micro Saint Quest SimCad WorkBench
5 5 5 3 0 2 0
5 5 5 3 0 2 0
4 4 5 5 4 4 5
3. táblázat Külső alkalmazással való együttműködés
Dinamikus modellfrissítés: Sorban állási stratégia dinamikus frissítése
Szoftver
PlantSim Extend FlexSim Micro Saint Quest SimCad WorkBench
Modell felépítés futás alatti frissítése
5 5 5 0 5 1 3
Felhasználó által meghatározott útvonalak
5 5 2 0 5 1 1
5 5 5 4 5 4 5
4. táblázat Dinamikus modellfrissítés
Egyéb: Szoftver
PlantSim Extend FlexSim Micro Saint Quest SimCad WorkBench
Több szimuláció futtatása
4 5 4 3 4 4 5
Nem üres állapotból indulás lehetősége
Alkalmazkodás a modell változtatásaihoz
2 5 2 2 3 5 3
Beépített elemek minősége
5 4 3 2 4 3 3
5. táblázat Összehasonlítás egyéb
~ 13 ~
5 4 4 0 3 4 3
Animációs szerkezet fejlesztés
5 5 5 2 5 5 2
Termelésprogramozási feladatok szimulációra alapozott vizsgálata
4. Plant Simulation Az előző fejezetben lévő összehasonlítás célja nem rangsorolás volt, hanem hogy bemutassa a különböző szoftverek erősségét és gyengeségeit. Ezek közül a rendszerek közül én a Plant Simulation választottam, főként azért mert ezt találtam a legelterjedtebb és legjobb támogatással rendelkezőnek. A Plant Simulation (korábbi nevén: eM-Plant) a Siemens által fejlesztett, Tecnomatix PLM termékcsalád tagja. Ez a termékcsalád a gyártási és logisztikai folyamatok tervezéseinek eszközeit tartalmazza. [8] Fő használati területei az autóipar, elektronikai ipar és a logisztikai szolgáltató cégek.
A termékcsalád elemei: - FactoryCAD (gyárelrendezés tervező) - FactoryFLOW (anyagáramlás elemzés,tervezés) - RobotExper (gyártórobot szimulátor) - Process Designer (gyártási folyamatok 3D tervezése) - Process Simulate (Gyártósor tervezés) - RobCad(Offline robotok programozása) - Jack (embermodellezés szimuláció) -Plant
Simulation
(Gyár,
gyártósor
és
folyamat
szimuláció és optimalizáció)
4.1 Termék életciklus-menedzsment A PLM (Product lifecycle management) egy olyan összetett megoldás, amely teljes termék életciklus-menedzsmentet tesz lehetővé.[8] Magában foglalja többek között a számítógéppel támogatott tervező (CAD), mérnöki (CAE), megmunkáló (CAM), rendszer mérnöki (SE), gyártási folyamat menedzsment (MPM), termék adat menedzsment (PDM) szoftvereket is. Az így elérhető rugalmasság és szervezettség a minőségi javulás mellett gyorsabb piacra
~ 14 ~
Termelésprogramozási feladatok szimulációra alapozott vizsgálata kerülést, csökkentet prototípus költségeket, csökkentett hulladék mennyiséget és ezen keresztül korábbi, és nagyobb mértékű megtérülést eredményez. A PLM segíti a vállalatokat a küzdelemben a növekvő komplexitásban és az versenypiacra szánt új termékek kifejlesztésével járó mérnöki kihívásokban.
4.2 A Plant Simulation bemutatása A Plant Simulation anyagáramlás szimuláció végrehajtására alkalmas rendszer [7]. Klasszikus értelemben az anyagáramlás az üzemekben történő anyag, gyártmány áramlásának (pl. szállítószalagon vagy akár járművön) történő leírását jelenti. A gyártási folyamat Plant Simulation alapú szimulációjával kimutathatók például az alacsony vagy túlzott raktárkészletek, az alul vagy túlterhelt szállítószalagok, és a rendszer
szűk
keresztmetszetei,
amelyek
a
gyártás
hatékonyságának
visszaesését eredményezhetik. Mind a 2D, mind a 3D szimulációhoz rengeteg kész alapelemet biztosít a Plant Simulation rendszer, ezek mellett készíthetünk saját elemeket is. A gyártási folyamatok ilyen módon történő szimulációja komoly költségeket tud megtakarítani a vállalatok számára. Például 2002-ben a BMW müncheni gyárában hajtottak végre egy elemzést a kamionforgalom csökkentésére a gyár területén Plant Simulation alapon, aminek az eredményeként 10%-kal csökkent a kamionok száma a gyár területén, 12,7%-kal csökkent a kamionok által a gyár területén töltött idő, és jelentősen csökkentek a belső közlekedés várakozási ideje. A Plant Simulation gyártási rendszerek és folyamatok modellezését és szimulációját teszi lehetővé. Használatával optimalizálható az anyagáramlás, az erőforrás felhasználás és a logisztika a gyár minden szintjén a teljes gyártóüzemtől a helyi gyártósorokig. A Plant Simulation segítségével a gyártás logisztikája modellezhető a rendszer viselkedésének elemzésére és teljesítményének optimalizálására. A számítógépes modell lehetőséget nyújt különböző változatok kipróbálására, vagy "mi lenne ha" jellegű vizsgálatokra a meglévő gyártósor megbontása, vagy a tervezett gyártósor megépítése előtt. A számos elemzőeszköz, statisztika és
~ 15 ~
Termelésprogramozási feladatok szimulációra alapozott vizsgálata grafikon lehetővé teszi a különböző gyártási helyzetek elemzését, és gyors, megfelelően alátámasztott döntések meghozását a gyártástervezésnek már a korai szakaszában. Viszont a teljes mélységű programozhatóság adta rugalmassága révén ennél sokkal szélesebb körben használható fel (Pl.: pénzügyi műveletek szimulációja). A legszélesebb skálán paraméterezhető elemkészlet sem képes minden valós folyamatot leképezni. Így van ez ezzel a szoftverrel is. A valóság lehető
legpontosabb
megközelítése
érdekében
a
modellezés
során
programrészletekkel szükséges kiegészíteni az objektumokból összeállított rendszert. Az általam alkalmazott szoftver ezt messzemenően támogatja, ez adja a rugalmasságát. Maga a szimulációs motor is C++ nyelven íródott, és csak Windows környezetben futtatható. Teljes mértékben kihasználható vele az öröklődés objektum orientált fogalma. Minden külön egységben irányítható hogy milyen paraméterek öröklődjenek. Elméletben nincs határ a feltölthető tömbök méretében vagy átalakítani Excel vagy ODBC adatbázisba az import/export funkciókat használva. Ez lehetséges statikus és dinamikus adatokkal. Statikus adatokat használva egyszerűen a menü opciók segítségével, dinamikusnál pedig az ActiveX technológiára épülő beépített parancsokkal. A szoftver jól el van látva debugger eszközökkel (pl.: eseménykövetés, kiterjesztés debugger, stb.). Igazán realisztikus 3D animációkat biztosít, amelyeken olyan tulajdonságokat is meg lehet adni, mint a szállítószalag hossza, a termék gyorsasága rajta, stb. Magának a készletnek a rendelkezésre állását is egy szinte valóságos módszerrel lehet beállítani, mondjuk akár valóságos naptár segítségével. A Plant Simulation tud irányítani, és azt is lehet irányítani egy bármilyen ActiveX-et engedélyezett szoftverrel. Nagy hátránynak találtam, hogy nem létezik benne visszavonás/mégis lehetőség, amivel meggyorsítaná a tervezést, illetve licencenként csak egy modell nyitható meg. A legnépszerűbb felhasználási területei a gyártócellák, gyártósorok, üzemcsarnokok területén történő áramlási folyamatok szimulációja, és elemzése.
~ 16 ~
Termelésprogramozási feladatok szimulációra alapozott vizsgálata Ilyen esetekben a három legfontosabb kérdés, ami miatt szimulációt érdemes végrehajtani: 1. Hány munkás, gép, tároló cella, stb. szükséges? 2. Logisztikailag ki mit, mikor, mennyi idő alatt készít el? 3. Elrendezés szempontjából hol van a legjobb helye a gépeknek és a dolgozóknak? A Plant Simulation egy diszkrét, esemény-vezérelt szimulációs rendszer, ami azt jelenti, hogy a folyamatosan előre haladó időben a rendszer csak a valamilyen szempontból lényeges események diszkrét pillanatait vizsgálja.[9] Másrészt a valóságban az idő folyamatosan telik. Ha megfigyelünk egy anyagot, ahogy a szállítón halad, nem fogunk időugrásokat észrevenni. Egy DES program viszont csak akkor számol az idővel, ha olyan esemény következik be, ami fontos a szimuláció további lefolyásához. Ilyen lényeges esemény lehet, például, amikor egy darab megérkezik egy szállítószalag elemre, vagy amikor elhagyja azt. Az 5. ábra mutatja, hogyan kezeli a szoftver az időt egy szimuláció futása alatt, ha esemény következik be.
5. ábra Esemény vezérelt rendszer idő ugrása [9]
~ 17 ~
Termelésprogramozási feladatok szimulációra alapozott vizsgálata Funkciók
Komplex gyártórendszerek és vezérlési rendszereik szimulációja
Objektum-orientált, hierarchikus gyármodellek készítése, beleértve az üzleti logikát, a logisztikát és a gyártási folyamatokat
Objektum könyvtárak a legjellemzőbb modellezési feladatok gyors, hatékony elvégzéséhez
Grafikonok és diagramok a
kimenet,
az erőforrások és a
szűk
keresztmetszetek elemzéséhez
Átfogó analíziseszközök, beleértve az automatikus szűk keresztmetszet elemzést, a Sankey-diagrammokat és a Gantt-grafikonokat
3D megjelenítés és animáció
Integrált tapasztalatkezelés
Genetikus algoritmus a rendszerparaméterek optimalizálásához
Nyitott architektúra, integrációs lehetőségek (ActiveX, CAD, Oracle, SQL, ODBC, XML, stb.)
5. Az épített modell Az
gyártórendszer
egyszerűsített
paraméterezhető
modelljének
kidolgozását a Plant Simulation 8.1-es verziójával végeztem el. A modell felépítése során a szoftver által nyújtott beépített objektumokat (Source, Drain, SingleProc, Buffer, BottleneckAnalyzer, EvenController, stb.), illetve a gyártás vezérléséhez egy külső forrásból származó termelési finomprogramot használtam. A feladat kiírásában fontos követelmény volt, ezáltal a tervezés során különös figyelmet igényelt az, hogy az általam készített modell teljes körűen paraméterezhető legyen és képes legyen egy termelésütemező szoftver által előállított termelési finomprogram szimulálására. Ez azt jelenti, hogy az erőforrás környezet
elrendezéstől
és
összetételétől
kezdve
egészen
a
megfelelő
objektumok (gépek, tárolók, stb.) szimulációs rendszerré alakításáig terjedően
~ 18 ~
Termelésprogramozási feladatok szimulációra alapozott vizsgálata „összhangban” kell dolgoznia a modellemnek a külső forrásból származó bemenő adatokkal. A másik fontos rész, amire oda kell figyelni, az a változók nevei, melyek nem kezdődhetnek számokkal, illetve nem lehet bennük sem szóköz, sem egyéb speciális karakter. Illetve ahogy majd látható lesz a gépeket összekötő útvonalak sem feltétlenül egy valós gyáregység útvonalait tükrözik. A következő ábra az elkészült modellt mutatja. Ennek a modellnek a topológiája nem teljesen olyan, mint amit az a programozó elképzelt, aki a hozzá készült finomprogramot készítette. Ezek szintén a szoftver sajátosságaiból adódnak. A következő
fejezetben a modellben szereplő
objektumokat és működésüket veszem sorra.
6. ábra Az elkészült modell
~ 19 ~
Termelésprogramozási feladatok szimulációra alapozott vizsgálata 5.1 A forrás, a nyelő és a pufferek A forrás generálja (létrehozza) a modellünkben az úgynevezett MU-kat (Moving Units), vagyis a mi esetünkben a munkadarabokat és félkész termékeket. Innen indul a modellezés. Ebben az elemben mindig kell lennie minimum 1 darab entitásnak. Különböző elemtípusokat tud egymás után vagy kevert sorrendben előállítani. Ezek jelölése lehet világosbarna vagy világossárga, attól függően, hogy éppen mozgásban vannak (szállítószalagon mozognak, műveletet hajtanak végre rajtuk, stb.), vagy álló helyzetben vannak (pl. tároló helyeken várakoznak).
7. ábra Munkadarabok és félkész termékek a modellben
A forrás a munkadarabokat és félkész termékeket a termelési finomprogram alapján továbbítja a megfelelő gép felé. A Plant Simulation szoftver felkínál a felhasználónak úgynevezett kilépési stratégiát, ami a mi esetünkben az objektumból kilépő MU-k eloszlását jelenti. A számunkra másik fontos rész a Controls fülön érhető el. Itt lehetőség van megadni a ki- és belépést irányító metódusok nevét. A belépés menü azt takarja, hogy minden esetben, amikor egy MU- belép az objektumba (jelen esetben generálódik) akkor lefut az a metódus, amire az itt tárolt cím hivatkozik. Az általam készített metódus (beallit) is ekkor fut le, formázva a modellben szereplő összes táblázatot. Ugyanez a metódus szolgál a modellben található összes táblázat formázására, és a forrás, és gépek kilépési stratégiájának beállítására, illetve, legyártandó job-ok számának meghatározására. Ugyan a metódus mindig meghívódik,amikor egy új alkatrész keletkezik a forrásban, de az utasítások csak egyszer futnak le, mert a metódus törzse csak a @.No = 1 , azaz csak az első alkatrész feltétel teljesülése esetén fut le.
~ 20 ~
Termelésprogramozási feladatok szimulációra alapozott vizsgálata A beallit metódus tartalmaz egy speciális részt, aminek segítségével azt szemléltetem, hogy lehet külső Excel forrásból származó adatokkal paraméterezni a modellt. A legyártandó munkadarabhalmazok (job-ok) számát, illetve az alkatrészek nevét tartalmazza a külső forrás, ami a jobszam.xls nevet kapta. Az alkatrészek nevét nem változtattam meg, így a Plant Simulation számára alapértelmezett (standard) MUs.Entity nevet kapták. Az általam készített példa táblázat Plant Simulation-be importált-, és formázott listáját a 8. ábra mutatja. Ezt a külső táblázatot a metódus beolvassa egy listába a Plant Simulationön belül, amelyet külön megfelelő formátumra kell állítani. Ezután a megfelelő helyen beállítjuk a hivatkozást a listára, ami ebben az esetben azt jelenti, hogy a forrás objektumban a 9. ábrán látható helyen beállítjuk a lista nevét. Ezek után mindig, amikor újra indítjuk a szimulációt, újra ki fognak értékelődni a tábla értékei, illetve a forrás fájl értékei is.
8. ábra jobok_száma lista
~ 21 ~
Termelésprogramozási feladatok szimulációra alapozott vizsgálata
9. ábra Lista beállítása munkák (job-ok) számának megadásához
A kilépés menüpont akkor „aktiválódik”, amikor egy MU ki szeretne lépni az objektumból. Ezáltal itt lehet meghatározni, hogy a különböző típusú alkatrészek és félkész termékek merre haladjanak tovább, azaz melyik gépre (jelen esetünkben melyik gépcsoport felé haladjanak). Jelen esetben egyfajta alkatrészekkel dolgoztam, és a beallit metódusban határoztam meg, hogy milyen stratégia (prioritási algoritmus) szerint küldje tovább a gépcsoportoknak az MUkat. A 10. ábrán látható egy részlet a program által felkínált stratégiákból. A blocking gomb arra szolgál, ha a soron következő objektum (gép) foglalt, nem képes alkatrészt fogadni, akkor addig az alkatrészek blokkolódnak, amíg fel nem szabadul az objektum, amire az alkatrész vár.
~ 22 ~
Termelésprogramozási feladatok szimulációra alapozott vizsgálata
10. ábra Kilépési-stratégia választás
A nyelő (Drain) típusú aktív anyagáramlási építőelem testesíti meg a modell másik határát (szemben a forrással). Egyetlen munkaterületet birtokol, és ha egy termék ebbe az elembe kerül, akkor azt megszünteti (elnyeli). A pufferek (Buffers), az átmeneti tárolásra szolgáló elemek, amelyek az egymást követő munkahelyek között kapnak helyet. Rendelkezhet végtelen és véges kapacitással a szimulációban. Egy valós rendszerben ezek méretének meghatározása is nagyon fontos része az optimalizálásnak, a következő fejezetekben
mutatni
fogok
néhány
technikát,
aminek
segítségével
meghatározható a megfelelő puffer méret, illetve azt is megvizsgáltam hogyan változik a kimenet, ha a pufferek mérete gyakorlati szempontból nem korlátozott (pl. kisméretű munkadarabok esetében). A pufferek dedikáltak, tehát egy géphez egy puffer tartozik, így puffer elérése után már nincs lehetőség útvonalat választani. Kétfajta puffer található a Plant Simulationben, az egyik az úgynevezett PlaceBuffer, amiben több hely található az alkatrészeknek, és csak egymás után,
~ 23 ~
Termelésprogramozási feladatok szimulációra alapozott vizsgálata beérkezési sorrendben léphetnek ki a tárolóból. Az általános Buffer-ben pedig megszabható a beérkezett alkatrészek kilépésének sorrendje. Egy pufferen tehát lehetőségünk van beállítani a tárolókapacitását, továbbítási prioritását (melyhez készen rendelkezésünkre áll FIFO, LIFO szabály, illetve
metódusban
általunk
generált
egyéb
algoritmus
is
használható).
Beállíthatjuk, mennyi ideig várakozzanak a félkész termékek, illetve ez is rendelkezik kilépési-stratégia lehetőséggel, mint a már említett forrás. Fontos megemlíteni még azt is, hogy minden egyes objektum rendelkezik egy meghibásodás/zavarok füllel, ezzel a lehetőséggel azokat az eseményeket is be lehet vonni, amik a szabályos lefolyást megzavarják (váratlan hiba, karbantartás, stb.)
A következő ábrákon a beallit metódus részletezve látható. Minden a Plant Simulationben szereplő úgynevezett listának a megfelelő alakra kell formázni az értékeit, ami a felhasználó feladatköre.
11. ábra A beallit metódus részlete
Itt állítom be a külső adatforrásban előírt munkák (job-ok) darabszámát. Első feladatom a forrás objektumban beállítani, hogy a generálás irányítása külső fájlból történjen. Majd a megfelelő táblázatba importálom azt az Excel fájlt ami a szükséges adatokat tartalmazza.
~ 24 ~
Termelésprogramozási feladatok szimulációra alapozott vizsgálata
12. ábra Munkák (job-ok) számának importálása
Ez a kód rész a kilépési stratégiát határozza meg. Pontosabban fogalmazva, itt adom meg a továbbítási prioritást.
13. ábra Exit stratégiák beállítása
5.2 Anyagszállítás Mivel a modellem nem egy konkrét gyártási környezetet szimulál, hanem egy absztrakt ütemezési feladattípust (Extended Flexible Flow Shop, EFFS), ezért a félkész termékek gépek közötti szállításnak részletes modellezésével külön nem foglalkoztam. A modell jelenlegi változatában, a gépek közötti, illetve a pufferek és a gépek közötti tranzakciós idők elhanyagolhatóak (sem szállítószalagot, sem más szállítási eszközt nem építettem bele, de maga a szoftver alkalmas ezek szimulálására, és így optimalizálásnál ezekkel is számolni lehet). Egy valós gyárban természetesen ez nem így működne, de számomra, illetve az általam végzett vizsgálatok szempontjából ez a tényező mellékes volt. Maga a szoftverrel lehetőség van minden igénynek megfelelő szállító rendszer kialakítására, legyen az egyszerű görgőpálya, szállítószalag vagy akár ezek
~ 25 ~
Termelésprogramozási feladatok szimulációra alapozott vizsgálata sarokkal rendelkező verziójára. A lehetőség kihasználásával a részletek kidolgozását a modell továbbfejlesztési lehetőségei közé soroltam.
5.3 A gépek Ezek az elemek képesek a műveletvégzés modellezésére. Egyszerre csak egy munkadarabot, terméket (termékcsoportot) tud megmunkálni vagy feldolgozni. Lehetőség
nyílik
például
olyan
speciális
gépet
definiálni,
melynek
a
tárolókapacitása nagyobb, mint 1, ekkor az elem puffer és gép keverékeként működik. Átveszi az MU-kat az őt megelőző elemtől, majd a szüneteltetési, javítási, és megmunkálási idők letelte után továbbadja azt az őt követő elemnek (ez megoldható sorban (szekvenciálisan), vagy más kiválasztott módon). A modellben szereplő gépek között vannak olyanok, amelyek csak egy, és vannak olyanok is, amelyek több egymást követő technológiai lépést (műveletet vagy műveletsort) képesek megszakítás nélkül elvégezni. A végrehajtási lépések alapján a gépekből gépcsoportokat (Machine Group, MG) szerveztem. Egy adott gépcsoporton belül azonos végrehajtási lépés-típussal, de más szempontból különböző képességekkel jellemezhető, párhuzamosan működő gépek lehetnek. A különböző gépcsoportba tartozó gépek száma eltérő lehet. A modellben összesen 10 gépcsoport található, amelyek megadott módon kapcsolódnak egymáshoz. A gépek bár kívülről (első közelítésben) azonosnak tűnnek, de alaposabb vizsgálat után világosan látható, hogy mindegyik önállóan paraméterezhetői, mind a Plant Simulation szoftveren belülről, mind külső forrásból. A gépek főbb paramétereinek beállítását (műveleti idő, átállási idő, javítási idő, stb.) már tárgyaltuk a forrással foglalkozó menüpont alatt. A 14. ábrán látható a gépek felosztása azon szempontból, hogy hány technológiai lépést képesek megszakítás nélkül elvégezni. Jól kivehetőek a különböző gépcsoportok, melyeken belül a gépek 1,2,3 vagy akár az összes technológiai lépés elvégzésére képes gépeket tartalmaznak. A függőleges felosztás azt mutatja, hogy a gépcsoportok melyik technológiai lépés (Technology Steps, TS) elvégzésére képesek. Vízszintes sorokban pedig a végrehajtási
~ 26 ~
Termelésprogramozási feladatok szimulációra alapozott vizsgálata lépések láthatóak, ez a technológiai lépések olyan sorozata, amely gépváltás nélkül végrehajtható.
14. ábra Végrehajtási lépések (Execution Step, ES) típusai a modellben [10]
5.4 Gépek paraméterezése A
gépeket
szimuláló
objektumok
témája
után
térnék
ki
a
paraméterezhetőségre, ami a dolgozatom egyik fő célkitűzése volt. Pontosabban a célom az volt, hogy a rendszert, a gépeket valamilyen külső forrásból származó termelési finomprogram által generált paraméterekkel lehessen vezérelni. A szakdolgozatomban kétféle megoldást is bemutatok. Az egyik az Excel fájlból történő importálás. Amikor egy Excel táblázat adatait egy, a modellben szereplő táblázatba importáljuk, majd onnan töltjük be az adatokat. Ez a megoldás látható a beallit metódusban, ahol a munkakötegek számát lehet megadott külső táblázatból importálni. Ez automatikusan megtörténik, a modell csak a szimuláció kezdetekor kér egy megerősítést a felhasználótól, hogy a megfelelő külső forrást töltse be. A másik lehetőség, amit bemutatok, az AttributeExplorer nevű objektum segítségével történik. Ennek a segítségével lehetőségünk van egyszerre több objektum paramétereit beállítani, majd azokat exportálni egy egyszerű szöveges
~ 27 ~
Termelésprogramozási feladatok szimulációra alapozott vizsgálata *.txt fájlba, vagy importálni egy már meglévőt. A gépek paraméterezéséhez ezt a módszert választottam, hogy be tudjam mutatni ezt a lehetőséget is. A 15. ábrán látható
a machine_parameters.txt nevű fájl aminek
segítségével külső forrásból beállíthatóak a gépcsoportok paraméterei.
15. ábra Külső forrás paraméterek beállításához
Ahogy látható mind a 10 gépcsoport tulajdonságai beállíthatóak itt. Az általam itt beállított, és tesztelt értékek a gépcsoportok műveletvégzési (feldolgozási)
ideje,
átállási
gépcsoportokban található
ideje,
javítási/karbantartási
párhuzamosan
működő
ideje,
illetve
gépek száma.
a
Ezeket
egyszerűen meg lehet változatni ebben a fájlban, majd a modellben az AttributExplorer-be importálhatjuk, ami a szimuláció elindításakor automatikusan be is állítja a kívánt értékeket a gépeken. Természetesen ezek csak példák, ezen kívül sok más dolgot is beállíthatunk a modellünkben ennek a módszernek a segítségével. Ezekről a lehetőségekről az Attribute Viewer gomb lenyomásával tájékozódhatunk az AttributeExplorer-en belül. A 16. ábrán a 15. ábra látható a Plant Simulation szemszögéből.
~ 28 ~
Termelésprogramozási feladatok szimulációra alapozott vizsgálata
16. ábra Beállított paraméterek
A 17. ábrán pedig az AttributeExplorer látható a Tools menüben található Import/Export lehetőségekkel, és a már említett Attribute Viewer gombbal.
17. ábra Attribute Viewer felülete
~ 29 ~
Termelésprogramozási feladatok szimulációra alapozott vizsgálata 5.5 Eseményvezérlő A modell egyik legfontosabb eleme az eseményvezérlő. E nélkül nem lehetséges
a
szimulációt
elindítani.
Legfontosabb
feladata
a
szimuláció
eseményeinek vezérlése (ahogy a neve is mutatja). Segítségével a szimuláció elindítható, megállítható, léptethető, alapállapotba hozható. A hibakeresés is itt valósítható meg a List menüpont alatt. A Time nyomógomb segítségével az idő megjelenítését lehet módosítani, a kijelzés mutathatja a szimuláció kezdete óta eltelt időt, vagy a tényleges dátumot és időt. A szimuláció különböző sebességekkel futhat, aminek beállítására is itt van lehetőség. A sebesség két különböző módon adható meg: az egyik egy csúszkán való beállítás, a másik a valós időhöz képest egy szorzótényező értékének megadása. A sebességek a szimuláció futása során dinamikusan is állíthatóak. A további beállítási lehetőségek között szerepel a szimuláció indítási dátumának beállítása. Ez lehet akár múltbeli, vagy jövőbeni időpont is. Ha nem akarjuk, végigfuttatni a szimulációt, a befejezést is be kell állítani, amit órákban tudunk megadni a kezdő időponthoz képest. Abban az esetben, ha a „Delete MUs on reset” be van állítva, akkor a szimulációban éppen részt vevő termékek törlésre kerülnek. A 18. ábrán ezek a beállítási lehetőségek láthatók.
18. ábra Eseménykezelő menüje
~ 30 ~
Termelésprogramozási feladatok szimulációra alapozott vizsgálata 5.6 Műszakbeosztás A Plant Simulation- ben lehetőség van arra, hogy a szimuláció számára műszakbeosztást adjunk meg. Ez a ShiftCalendar nevű objektum segítségével tehető meg [11]. Megadható a műszakok száma, időtartama, a műszakokon belüli szünetek száma és hossza, az hogy az adott műszakok esetén a hét mely napjain történik termelés. A műszakbeosztást egy egyszerű szöveges fájl importálásával lehet megtenni. A fájl első sorában van a fejléc, ahol a megadható paraméterek szerepelnek. Ezek a műszak neve (Shift), a kezdés időpontja (From), a befejezés időpontja (To), a hét napjai, amikor az adott műszakban munka van (Mo, Tu, We, Th, Fr, Sa, Su), valamint a szünetek (Pause). A következő sorokban vannak a tényleges műszakok. Ezt a lehetőséget azért említettem, mert a rendszer továbbfejlesztése szempontjából
fontos
objektum
(felhasználható
idő
alapú
célfüggvények
alkalmazásakor, valós több műszakos munkarend szimulálásakor).
5.7 A modell működés közben A 19. ábrán a modell működés közben látható. A már említett módon, itt láthatók az alkatrészek, ahogy az útvonalakon áramlanak. A gépek állapota nyomon követhető a felettük elhelyezkedő állapotjelző ikonok segítségével. A gép fölött megjelenő zöld kör jelenti, hogy a gép éppen dolgozik, a szürke jelentése, hogy a gép várakozik, a sárga színű ikon jelzi, hogy a gép blokkolt állapotban van, a piros jelentése a hibás művelet, a sötétkék a szüneten lévő gépet jelenti, a világoskék ikon jelentése pedig a nem tervezett művelet. Megfigyelhető, hogy mozgás közben az alkatrészek nevei is látszódnak, ezáltal azt is nyomon lehet követni, hogy az alkatrészek megfelelő sorrendben, és útvonalon haladnak-e. Mivel én nem állítottam be külön típusokat ezért az alapértelmezett Entity névvel láthatók feliratok a képen.
~ 31 ~
Termelésprogramozási feladatok szimulációra alapozott vizsgálata
19. ábra A modell, működés közben
6. Flow Shop (FS) modellek A soros gyártási struktúrához és homogén technológiai tervekhez kapcsolódó modellben (Flow Shop, FS) a rendelésekben megadott számú munkadarab
adott
számú
különböző
gépen,
a
technológiai
sorrendnek
megfelelően, egymás után kerül megmunkálásra. Ha megengedett az, hogy az egyes gépeken a munkák sorrendje eltérő legyen, akkor előzéses, ellenkező esetben előzésmentes modellről van szó. A termelés során tehát munkadarab sorozatok (kötegek) gyártásáról kell gondoskodni. A rendelési sorozatok független bemeneti adatok a gyártás számára. A gyártási és logisztikai sorozatnagyságok azonban termelésirányítási döntések tárgyai lehetnek. [10] A 20. ábrán egy példa látható, egy előzésmentes FS modellre. Az M a sorrendben az utolsó gépet jelöli, minden job ugyanazt az utat járja be, és a gépek mindegyikén sorban végig kell haladnia. A gépek között található átmeneti tárolók kapacitása az elméleti modell szempontjából korlátlannak tekinthető. Termelési finomprogram készítésekor fontos kérdés a munkák indítási időpontjának meghatározása, melyet szimulációval könnyen megvalósíthatunk.
~ 32 ~
Termelésprogramozási feladatok szimulációra alapozott vizsgálata
20. ábra Flow shop [10]
6.1 Flexible Flow Shop A diszkrét gyártásirányításban egyre nagyobb szerepet kap a számítógépes támogatás
(CA*
-
Computer
Aided),
így
a
kis
és
közép
méretű
gyártórendszereknél (20-200 munkahely) már szükséges a klasszikus FS feladat kibővítése. Ilyen kibővített modell a rugalmas, egyutas (Flexible Flow Shop, FSS) modell, amelyben az alapmodell párhuzamos gépekkel van kibővítve. Az ilyen modellekben gépcsoportokat alkothatunk, amelyekben adott számú, azonos feladat végrehajtására alkalmas, egymással párhuzamosan működő, egyenértékű (identical), gépenként eltérő, de rögzített termelési sebességgel (uniform), vagy gépenként eltérő munkáktól függő paraméterekkel működő (unrated) gépek lehetnek. A munkahelyek között itt is átmeneti tárolók kaphatnak helyet, melyek itt is elméletben korlátlan méretűek. A job-oknak itt is sorban kell haladniuk az egymást követő munkahelyeken, de az, hogy a munkahelyen belül melyik párhuzamos
gépre
kerüljenek
(gépválasztás,
hozzárendelés),
már
a
termelésprogramozó feladata. A 21. ábrán egy általános FFS modell látható, melyen jól látható a párhuzamosan kapcsolt gépek az adott munkahelyeken.
~ 33 ~
Termelésprogramozási feladatok szimulációra alapozott vizsgálata
21. ábra FFS modell [10]
6.2 Extended Flexible Flow Shop Napjainkban egyre fontosabbá válik a vevői igények szerinti rugalmas gyártás irányítása. Egyik tipikus példája ennek az igény szerinti sorozatgyártás, melynek során egy adott rendszerben egyidejűleg különböző végtermékek gazdaságosan
állíthatók
elő
változtatható
sorozatnagyságok
mellett,
és
szeretnénk részben vevői igény és részben piaci előrejelzés által vezérelt módon irányítani a gyártási folyamatokat. Napjainkban a FS bővítése is ebbe az irányba halad. Ez a fejlődési irány vezetett el az úgynevezett kiterjesztett rugalmas flow shop (Extended Flexible Flow Shop, EFFS) modellhez. A következőkben az EFFS modell jellemző vonásait foglalom össze a [10] alapján. Ebben a modellben a logisztikai egységek önálló munkát jelentenek. Az EFFS feladatosztály magában foglalja az egyműveletes párhuzamos gépes (P), az egyutas többoperációs (FS) feladatok, valamint a rugalmas -FFS feladatok megszakítás nélküli, előzéses változatait. Az EFFS modellben a végrehajtási útvonal a végrehajtási lépések olyan sorozata, amelyben az előforduló technológiai lépések csak egyszeresen vannak lefedve, azaz a végrehajtási lépések közös része üres halmaz.
~ 34 ~
Termelésprogramozási feladatok szimulációra alapozott vizsgálata A végrehajtási lépések típusai alapján gépcsoportok (géptípus osztályok) vannak definiálva. Egy gépcsoport azonos végrehajtási lépéssel jellemezhető, de más jellemzőkben eltérő képességű gépek adott elemszámú halmaza. Mivel a gépek
nem
minden
terméktípust
képesek
kezelni,
így
a
gépcsoportok
terméktípusonként (vagy terméktípus-csoportonként) eltérőek. Egy végrehajtási útvonal
végeredményben
a
megfelelő
végrehajtási
lépéseket
realizáló
gépcsoportok sorozatát jelenti. A logisztikai egység (pl. paletta, konténer) megadott darabszámú, adott típusú termék előállítására irányuló munkadarabok együttesét jelenti. A logisztikai egység munkadarabjai együtt kerülnek mozgatásra a gyártó-szerelő rendszerben, és azonos műveleteket kell rajtuk végrehajtani. A munkáknak végig kell haladniuk minden technológiai lépésen, adott sorrendben. Egy rendelés ilyen logisztikai egységek halmazának tekinthető.
Egy rendszer termelési finomprogramjának modellje funkcionális szempontból három részre bontható: -
Végrehajtási útvonal kiválasztása, az érintett gépcsoportoknak megfelelően rendre kiválasztott géppel.
-
Gépenkénti bontásban a munkák végrehajtási sorrendjének definiálása.
-
Időadatok listája gépenkénti bontásban (műveleti idő, kezdési idő, befejezési idő, stb.).
Egy ilyen rendszer látható a 22. ábrán.
~ 35 ~
Termelésprogramozási feladatok szimulációra alapozott vizsgálata
22. ábra EFFS modell [10]
6.3 EFFS a szimulátorban Szakdolgozatomban a 22. ábrán látható elméleti rendszermodell Plant Simulation
szimulációs
túlmenően
a
összegyűjtésével
változatának
szimuláció és
a
kidolgozására
működéséből
levonható
származó
következtetések
foglalkoztam.
~ 36 ~
törekedtem.
Ezen
tapasztalatok
megfogalmazásával
Termelésprogramozási feladatok szimulációra alapozott vizsgálata A kidolgozott modellem 4 technológiai lépést tartalmaz. A végtermékek között nem tettem különbséget, tehát a modellemnek csak egy fajta végterméke van. A rendszerembe első közelítésben végtelen kapacitású átmeneti tárolókat építettem, de később az elemzésekhez beállítottam azokhoz kapacitáskorlátot is. Megvizsgáltam, hogy a különböző korlátok milyen hatással lesznek a végeredményre. Egy egyszerűsített finomprogrammal láttam el a modellemet, aminek segítségével az előbb említett három fő funkcionális részt szerettem
volna
megvalósítani.
A
szoftver
lehetőségeiből
adódóan
megszorításokat kellett tennem. Ilyen megszorítás volt, hogy, bár a szoftver alkalmas párhuzamos gépek csoportjának szimulálására, viszont az ezen belül történő gépkiválasztásra, illetve a gépeket különböző paraméterekkel nem lehetséges ellátni. Ennek a problémának egy megoldási lehetősége az lett volna, ha a párhuzamos gépeket külön-külön objektumokkal helyezem el a modellben, viszont ilyen esetben a gépek száma lenne kötött. A tervezés során az első verziót választottam, tehát állíthatók a modellemben a gépszámok, de a gépcsoportokon belül csak egységes paraméterekkel rendelkeznek a gépek. Sajnos így nem fedi teljesen az eredeti EFFS elvárásait a rendszer. Ettől eltekintve a modell paraméterezhető maradt. Így külön beállítható a modellemben az igényeknek megfelelően: -
a végrehajtási útvonal (bár az előbb említett okok miatt csak magát a gépcsoportot lehet kiválasztani),
-
az
időadatok
paraméterezhetőek
objektumonkénti
bontásban
(munkák/paletták száma, munkákhoz tartozó tervezett kezdési időpontok, gépbeállítási
időtartamok,
műveleti
gépcsoportok gépeinek száma).
~ 37 ~
idők,
befejezési
időpontok,
Termelésprogramozási feladatok szimulációra alapozott vizsgálata
7. Szimulációra alapozott termelésprogramozás
Egy adott gyártási rendelésről az összes adat (azonosító, prioritás, termék típus, határidő, stb.) elérhető a vállalat ERP (Enterprise Resource Planning – integrált Vállalatirányítási Rendszer) adatbázisából [12]. Más részről minden, a termékhez, technológiához, erőforráshoz kapcsolódó, információ elérhető a MES (Manufacturing Execution System – Gyártásirányítói rendszer) adatbázisból. A Miskolci Egyetem Alkalmazott Informatikai Tanszékének kutatói [12] munkájukban egy új termelésprogramozási koncepciót mutattak be. A javasolt módszerben az adott ütemezési feladat megoldását leíró részletes termelési finomprogram előállítási folyamata két fázisból áll. Az első fázisban (felső szint) egy determinisztikus adatmodellen és gyors végrehajtás-vezérelt szimuláción alapuló
keresési
eljárás
nagy
keresési
teret
bejárva
készít
termelési
finomprogramokat. Ennek köszönhetően számos megvalósítható optimum-közeli finomprogramot kapunk. A
második
fázisban
a
finomhangoláshoz
egy,
sokkal
precízebb
sztochasztikus modell alapú eseményvezérelt szimulációt használnak, melynek segítségével szűkebb keresési tartományban, de jóval kifinomultabb vizsgálatokat lehet elvégezni a kapott megoldások robosztusságával kapcsolatban. Az első fázis arra összpontosít, hogy egy közel optimálisan megvalósítható ütemtervet készítsen, amíg a második fázis szerepe az, hogy kiválassza azt a megoldást, amely a legjobban alkalmazkodik a különböző bizonytalanságokhoz. A 23. ábrán látható a vázolt 2 fázisú szimuláció-alapú modell, amely a különböző gyártási célok és követelmények, valamint összetett korlátozások rugalmas használatát egyidejűleg támogatja. A
szimuláció
segítségével
könnyen
kiértékelhető
számos
gyártási
teljesítménymutató még a legyártás végrehajtása előtt. Ezzel módosíthatók vagy akár javíthatók a MES vagy akár az ERP szinten meghozott döntések következményei. A lehetséges ütemtervek, és a célul kitűzött funkciók, kiértékelhetők gyártás szimulációval. Ezek a szimulációk egy valós környezetet
~ 38 ~
Termelésprogramozási feladatok szimulációra alapozott vizsgálata ábrázolnak, kapacitással és technológiai megkötésekkel. Egy ilyen végrehajtás vezérelt szimulációban a munkadarabok, alkatrészek és munkák passzív elemek, melyeket gépek, emberek, pufferek munkálnak meg, mozgatnak vagy tárolnak. Segítségével számolhatók és meghatározhatók a részletes idő adatok is, ezzel elősegítve az időzítés problémájának megoldását.
23. ábra Szimuláció alapú finomterv modellje [12]
Miután ilyen módon leszűkítettük a lehetséges ütemtervek listáját, áttérhetünk a sokkal időigényesebb finomhangolásra, ami a második fázis fő célja. Itt jönnek képbe az olyan eseményvezérelt szimulációs rendszerek, mint a Plant Simulation, melyek rugalmasságot és a matematikai formalizmusok széles spektrumát tartalmazzák, melyek segítségével mélyebb analízis végezhető. Egy részletezett eseményvezérelt szimulációs modell segítségével megfigyelhetőek az irányítási probléma fontos szempontjai, melyeket nem lehet ábrázolni a determinisztikus végrehajtás vezérelt, gyors szimulációs modellel. A legfontosabb kérdések a gyártórendszer bizonytalanságai, mint például a megmunkálási, az anyagmozgatási,
átállási,
javítási
idők.
Ebben
a
koncepcióban
az
eseményvezérelt szimulátor egy funkcionális alrendszere (alkotóeleme) az ütemező rendszernek, amelyben a valós termelő rendszer virtuális végrehajtó és visszacsatoló szerepét tölti be. A szimulátor irányító logikája gondoskodik arról,
~ 39 ~
Termelésprogramozási feladatok szimulációra alapozott vizsgálata hogy az előre definiált termelési finomprogram hajtódik végre. Ezek mellett a kereskedelmi szimulátor szoftver szolgáltatásain keresztül segít a vizualizációban, a statisztikai és/vagy más alapú teljesítménymutatók kiértékelésében, továbbá megerősíti a kiválasztott termelési finomprogram helyességét és különböző szituációkhoz való alkalmazkodóképességét.
8. Szimulációra alapozott vizsgálatok Ebben a fejezetben bemutatok néhány lehetséges vizsgálati, elemző módszert, amelynek segítségével a 2.1 és 7. fejezetben már említett különböző döntéseinket (tervezés, beruházás, ütemezés, működési előrejelzés, stb.) alátámaszthatjuk. Minden ezután következő vizsgálat, és eredmény az általam készített ütemezésből származnak. 8.1 Statisztikák A szimulációban sok kérdés foglalkozik az eloszlással (hibák, várakozási idők,
kihasználtság,
stb.).
A
szimulációs
futtatások
kiértékeléséhez
támaszkodhatunk az objektumok által gyűjtött statisztikai adatokra [13]. A modell a szimuláció elindulásától kezdve a teljes futás alatt folyamatosan gyűjti az adatokat. Csak azok az objektumok gyűjtik az adatokat, amelyekre utasítást adtunk, azaz engedélyeztük számára az adatok gyűjtését. Lehetőségünk van arra is (mondjuk, ha csak egy napi statisztikai adatra van szükségünk), hogy az EventController-ben beállítsunk egy időpontot, hogy mikor törlődjön az addig gyűjtött adat. A statisztikákat alap esetben csak úgy lehet megvizsgálni, ha minden, számunkra fontos, objektumot külön megnézünk. Viszont ez igen időigényes lehet, illetve az adatokat sem egyszerű így tárolni. Egy EndSim metódus segítségével lehetőségünk van a számunkra fontos objektumok összegyűjtött adatait egy külső fájlba menteni. Készítettem a modellben egy ilyen metódust, aminek a
~ 40 ~
Termelésprogramozási feladatok szimulációra alapozott vizsgálata segítségével
néhány
statisztikai
adatot
gépcsoportonként
elmentek
a
simulation_analysis.xls fájlba. Ez a fájl az értékeit egy, a modellben szereplő TableFile-ból veszi, tehát az adatok előbb oda kerülnek, majd exportálom őket az Excel fájlba, melynek értékei minden futtatás után felülíródnak, így mindig csak az aktuális adatokat tartalmazza. Az elmentett statisztikák is igény szerint bővíthetőek, illetve az is tetszés szerint beállítható, hogy melyik objektum statisztikájára van szükségünk. A kimentett adatokban a gépcsoportok külön sorban szerepelnek, és gépcsoportonként leolvasható a gépkihasználtság, várakozási idő, stb. százalékos formában. A készített EndSim metódus a 24. ábrán látható, a 25. ábrán pedig az analysis nevű, formázott TableFile látható.
24. ábra EndSim metódus
~ 41 ~
Termelésprogramozási feladatok szimulációra alapozott vizsgálata
25. ábra Statisztikákat gyűjtő táblázat
A másik lehetőség a statisztikák mentésére, ha a Ctrl billentyű lenyomása közben kijelöljük az összes objektumot, amit vizsgálni akarunk, majd az egyik ilyen objektumon jobb egérgombot nyomva (illetve F6 billentyű lenyomásával) a show statistics menüpontot választjuk. Ekkor egy HTML formátumú ablak jelenik meg, melyet lehetőségünk van elmenteni ilyen formátumban.
8.2 Diagramok Az előbb bemutatott lehetőség megfelel a mérnök számára, viszont ha a szimulációnk eredményét a vezetőségnek vagy a kollégáknak szeretnénk bemutatni, akkor egy sokkal szemléletesebb megoldásra van szükségünk. Ilyen lehetőség a grafikonok használata. A diagram automatikusan frissül minden módosítás után, így a szimuláció során láthatóvá válik a meghatározott értékek dinamikus viselkedése. Ezekhez a diagramokhoz készíthetünk egy riportot, melyet az előbb említett módon HTML formátumban elmenthetünk a Report objektum segítségével. A 26. ábrán egy ilyen riport látható, ahol a gépek kihasználtságát figyelhetjük meg egyenként, a diagram alatt százalékos értékekben láthatóak a statisztikák, jobb oldalon pedig a magyarázat. Ezáltal könnyű jól átlátható prezentációt készíteni a vizsgált egységekről. Rengeteg lehetőségünk van a diagramok beállítására, készíthetőek hisztogramok, táblázatok, torta (pie) típusúak, 3D-s diagramok, stb.
~ 42 ~
Termelésprogramozási feladatok szimulációra alapozott vizsgálata
26. ábra HTML riport
8.3 A Sankey-diagram A Sankey-diagram egy speciális áramlás diagram, ahol a nyilak vastagsága az áramlott mennyiséggel arányos. Tehát ott lesz a legszélesebb, ahol a legnagyobb volt az anyagáramlás. A 27. ábrán az általam készített beállítások segítségével mutatom be a működését. Ezzel a szemléletes módszerrel könnyű meglátni melyek a nagyobb illetve kisebb mértékben terhelt gépek. Ebben az esetben látható, hogy az MG4 jelzésű gépcsoportra sok munka hárul, amíg az MG2-es gépcsoport alig dolgozik. Itt említeném meg, hogy az általam készített ütemtervnek nem az volt a célja, hogy valamilyen kiválasztott teljesítménymutató szempontjából optimális legyen, hanem hogy jól bemutathatók legyenek
a
szimulációs
vizsgálatok
~ 43 ~
és
azok
jellemző
eredményei.
Termelésprogramozási feladatok szimulációra alapozott vizsgálata
27. ábra Sankey-diagram
Ütemtervek szemléltetésére egy másik elterjed módszer a Gantt diagramok használata.
A
szoftver
rendelkezésemre
rendelkezik
bocsájtott
verzió
ugyan
licence
a
képességek,
nem engedte
ezen
viszont
a
objektum
használatát. De mindenképpen fontos megemlíteni a lehetőséget.
8.4 Szűk keresztmetszet A szoftverben a Bottleneck Analyzer ad segítséget ahhoz, hogy könnyen felismerjük a szűk keresztmetszetet a gyártórendszerben. A modellben lévő összes anyagáramlási egység statisztikáit jeleníti meg. Statikusan dolgozik, tehát csak a végeredményt mutatja. Az eredmény megjeleníthető táblázat formájában is, ahogy a 29. ábrán látható. A 28. ábrán látható színkód megegyezik a 26. ábrán láthatóval, tehát a zöld a
dolgozó,
a
szürke
a
várakozó,
~ 44 ~
a
piros
pedig
zavart
jelent.
Termelésprogramozási feladatok szimulációra alapozott vizsgálata
28. ábra Bottleneck
29. ábra Bottleneck táblázat
~ 45 ~
Termelésprogramozási feladatok szimulációra alapozott vizsgálata 8.5 Szimulációs kísérletek Miután elkészítettük a modellt szükségünk van arra, hogy ellenőrizzük, vajon a megfelelő tulajdonságokhoz és az elvárt (tervezett) viselkedéshez jutottunk-e el. A szimuláció egyik fő felhasználási területe a „mi lenne ha…” típusú kérdések megválaszolása, azaz egy adott paraméter megváltozása milyen hatással lesz az eredményekre. Ebben segít az ExperimentManager. Ezzel az eszközzel lehetőségünk van egyszerre több szimulációs kíséreltet végrehajtani. Beállíthatjuk, hogy mennyi kísérletet szeretnénk végrehajtani, milyen input és output adatokkal [14]. Alapvetően két fő célja lehet ezen objektum használatának. Az egyik, ha úgymond statisztikailag biztos eredményeket szeretnénk. Tételezzük fel, hogy lemodelleztünk egy létező gyártórendszert, és szeretnénk összehasonlítani a valós eredményeket a szimulált eredményekkel. Ekkor, ha többször lefuttatjuk a szimulációt az ExperimentManager segítségével, kapunk egy konfidencia intervallumot,
melynek segítségével meggyőződhetünk a
pontosságról. Ezáltal, ez egy jó kiindulási pontja lehet a jövőben a modellen elvégzendő változtatásoknak, bővítéseknek és fejlesztéseknek. A másik cél, hogy megvizsgáljuk a modell paramétereinek különböző változatait, és ezáltal megtaláljuk a megfelelő beállításokat és elvégezzük az optimális eredményeket biztosító finomhangolást. Vegyük például az optimális puffer méretének meghatározását. Első lépésben az inputot szükséges beállítanunk, ami jelen esetben az MG1MG2MG3MG4, azaz a 4 gépcsoportból álló végrehajtási útvonal pufferei lesznek. Név szerint a BufferMG2, BufferMG3 és BufferMG4. Az output az erről az ágról érkező késztermékek lesznek, tehát a nyelő típusú elemben figyeljük az innen érkező anyagáramlást. Majd a kívánt alapadatok (minimális, maximális puffer méret) megadása után beállítható, hogy a vizsgálatokat mekkora lépésközökkel hajtsa végre, illetve hányszor futtassa le ugyanazokkal az értékekkel a szimulációt. Ezek után végrehajtathatjuk a kísérletet. A szimulációs modell méretétől nagymértékben függ a kísérlet futási ideje. Amint a rendszer befejezte a munkát automatikusan megnyit egy riportot, ahogy a 30. ábrán is
~ 46 ~
Termelésprogramozási feladatok szimulációra alapozott vizsgálata látszik. Ebben megtalálható az input fülnél, hogy milyen puffer méretek mellett történt meg a vizsgálat, az output fülnél látható, hogy mekkora volt a kibocsájtása ennek az ágnak. A mi esetünkben a vizsgált gépcsoportnak a késztermék kibocsájtása, ahogy a 30. ábráról látható a 349-es átlagot éri el. A 30. ábrán látható hogy a rendszer a legnagyobb kibocsájtását a második, harmadik, és negyedik kísérletnél érte el. Ha megnézzük az input fülön ezeket a kísérletet, akkor azt látjuk, hogy a 2-es 3-as 4-es pufferek kapacitása rendre 1,1,2/1,1,3/1,1,4 a kísérlet alatt. Számunkra ez azt jelenti, hogy a maximális áteresztőképesség eléréséhez szükséges optimális puffer méret a BufferMG2-es jelzésű puffer esetében 1, a BufferMG2 jelzésű puffer esetében is 1, és a BufferMG4 jelzésű puffer pedig 4. Ezekkel a beállításokkal elérhető, hogy megmaradjon a maximális áteresztő képesség, és fölösleges helyet se vegyünk el.
30. ábra Kibocsájtások kísérletenként
Grafikonon is megjeleníthető az eredmény, konfidencia, illetve min-max intervallumokkal, ahogy a 32. ábrán látható.
~ 47 ~
Termelésprogramozási feladatok szimulációra alapozott vizsgálata
31. ábra Kísérletekhez rendelt puffer méret
32. ábra Konfidencia intervallum
~ 48 ~
Termelésprogramozási feladatok szimulációra alapozott vizsgálata
9. Eredmények és következtetés Napjaink dinamikusan fejlődő világában a vállalatok egyik fő célja a vevői igények kielégítése, amelyhez szükségük van a gyors, helyes döntések meghozatalára és a rugalmasabb gyártórendszerekre. Ahogy egy gyártórendszer növekszik, úgy lesz egyre érzékenyebb a változásokra, ami egy rugalmas rendszernél nélkülözhetetlen. Egy bonyolult rendszerben sok olyan változó található (munkák száma, gépek, emberi és technológiai erőforrások, kapacitások, és ide sorolható a piac bizonytalansága és a vásárlói igények is) amelyek megnehezítik a döntéshozást és a gyártás tervezését és irányítását. Dolgozatomban megismertem és felhasználtam egy diszkrét eseményvezérelt szimuláció modellezésére alkalmas szoftvert azon célból, hogy bemutassam, hogyan lehet a termelési folyamatokat és rendszereket vizsgálni a segítségével. A bemutatásához építettem a szimulátorban, és külső forrásból paramétereztem egy speciális rugalmas Flow Shop modellt (Extended Flexible Flow Shop, EFFS). Azért a Flow Shop modellre esett a választásom, mert úgy véltem ezzel a modellel jól szimulálhatóak a rugalmas gyártórendszerekben (akár ilyen gyártórendszer bővítésében, akár irányításában) előforduló döntési helyzetek. A Miskolci Egyetem Alkalmazott Informatikai Tanszékének kutatói egy új termelésprogramozási koncepciót mutattak be, melyben az eseményvezérelt szimulátor egy funkcionális alrendszere (alkotóeleme) az ütemező rendszernek, és elősegíti az ütemterv finomhangolását. Ebből is látszik, hogy olyan területről van szó, amely napjainkban is folyamatosan fejlődik, így ez a modell is folyamatosan fejleszthető, korántsem tekinthető véglegesnek. A nagyfokú rugalmassága és paraméterezhetősége segítségével további kutatások eszköze lehet a szimulációra alapozott termelésprogramozásnak.
~ 49 ~
Termelésprogramozási feladatok szimulációra alapozott vizsgálata
Összefoglalás A rendszerek modellezésére számos eszköz és technika létezik, ezek egyike a szimuláció. A szimuláció egy valós vagy elképzelt rendszer modellezése azon
célból,
hogy
a
rendszer
általunk
fontosnak
tartott
tulajdonságait
tanulmányozni lehessen. A szimuláció egyik nagy erőssége abban rejlik, hogy képes a rendszer viselkedését az idő vagy események múlásával modellezni. A diszkrét eseményvezérelt szimuláció (DES) az egyik módja annak, hogy az esemény alapú modelleket felépítsük és megfigyeljük. A kísérleti szakasz folyamán a modelleket többször végrehajtjuk, hogy eredményeket generáljunk. Az eredmények arra használhatók, hogy betekintést nyerjünk a rendszerbe, és alapot teremt ahhoz, hogy döntéseket hozzunk, vizsgálatokat végezzünk és elemezzünk. Dolgozatom témája egy absztrakt gyártórendszer modellezése egy általam kiválasztott modellező szoftver segítségével. Az általam kidolgozott Plant Simulation modell egy EFFS (Extended Flesxible Flow Shop) gyártórendszer ütemezését és vizsgálatát támogatja. A gyártási folyamat négy technológiai lépésből áll, és összesen tíz gépcsoport található benne. A dolgozat célja az, hogy bemutassam, egy általam készített modellen keresztül, hogy a szimulált rendszereket hogyan lehet paraméterekkel ellátni. További célom volt, az elkészített, paraméterezett modell segítségével bemutatni az eredményeket, és megvizsgálni azokat. A szoftver, melyet felhasználtam a modellezés során, a Siemens által védjegyezett Tecnomatix Plant Simulation. A munkám során megismertem és felhasználtam a számos beépített objektumot, és azok lehetőségeit. Majd feltártam, hogy milyen vizsgálati lehetőségeket ad a szoftver. A modell a jövőben tovább fejleszthető, javítható és bővíthető az általunk elvárt követelményeknek megfelelően, vagy akár az EFFS kutatási terület számára is új lehetőségeket nyújthat. Minden szimuláció célja, hogy a valós világ azon részét, melyet modellezni szeretnénk, minél pontosabban ábrázolja. Egy ilyen modell létrehozása nehéz, és időigényes feladat.
~ 50 ~
Termelésprogramozási feladatok szimulációra alapozott vizsgálata
Summary Modelling of systems can be achieved by numerous tools, and techniques. One of these techniques is the simulation. Simulation is the technique of building the model of a real or proposed system and so the attributes, wich are important to us, can be studied. One of the key powers of simulation is the ability to model the behaviour of a system as time or event progresses. Descrete Event Simulaton (DES) is one way of building up models to observe the event based behaviour of a system. During the experimental phase the models are executed several times, in order to generate results. The results can be used to provide insight into a system and to help in making decisions, examining and analyzing. The topic of my thesis is the modelling of an abstract production system with the help of a modelling software, choosen by me. This Plant Simulation model supports the scheduling and examining of an EFFS (Extended Flexible Flow Shop) production system. The production process consists of four technological steps, and consists of ten machine groups. The aim of the thesis is to present a model made by myself, and how it can be parameterized. Furthermore, I wanted to show and examine the results of this parameterized model. The software I used during the modelling is the Tecnomatix Plant Simulation, trademarked by Siemens. During my work I became familiar with several built in objects, and used out their potentials. After this, I revealed what kind of examining tools are provided by this software. In the future the model can be developed, complemented and expanded further, according to the requirements, or to provide new opportunities in the research area of the EFFS. The aim of every simulation is to represent the part of the reality we want to simulate as accurately as possible. Building such a model is a hard and long process.
~ 51 ~
Termelésprogramozási feladatok szimulációra alapozott vizsgálata
Irodalomjegyzék [1] Thomas J. GOGG, Jack R. A. MOTT: Improve Quality and Productivity with Simulation, Michigan, JMI Consulting Group, 1992. [2] KOVÁCS Gábor: Diszkrét eseményű rendszerek felügyeleti irányítása, jegyzet = http://sirkan.iit.bme.hu/dokeos/courses/BMEVIIIM179/document/DER/des_handou t_1.pdf?cidReq=BMEVIIIM179. [3] KISS Bálint, KOVÁCS Gábor: Diszkrét eseményvezérelt rendszerek felügyeleti irányítása, BME Irányítástechnika és Informatika Tanszék, 2008. [4] http://www.eco-log-ing.hu. [5] SIMON László: Egy magyarországi élelmiszergyártó üzem termelésének és termelés-kiszolgálásának szimulációs vizsgálata, tapasztalatai = http://www.ecolog-ing.hu/downloads/CIKKEK/MLBKT2010.pdf. [6] Juan Camilo ZAPATA, Pradeep SURESH, G. V. REKLAITIS: Assessment of Discrete Event Simulation Software for Enterprise-wide Stochastic Decision Problems, Purdue University, School of Chemical Engineering. [7] http://graphit.hu. [8] http://gyartastrend.hu. [9] Tecnomatix Plant Simulation 10 Step-by-Step Help, Tecnomatix Siemens, Siemens Product Lifecycle Management Software Inc., 2010. [10] KULCSÁR Gyula: Ütemezési modell és heurisztikus módszerek az igény szerinti tömeggyártás finomprogramozásának támogatására, PhD-értekezés, Miskolc, 2007. [11]
DUBOVINSZKY
Péter:
Hűtőszekrény-ajtó
gyártósor
modellezése
Plant
Simulation szoftverben, Diplomamunka, 2010. [12] Gyula KULCSÁR, Péter BIKFALVI, Ferenc ERDÉLYI, Tibor TÓTH: A New Simulation-Based Approach to Production Planning and Control, Proceedings of the 37th International MATADOR Conference, London, Springer-Verlag, pp. 251– 254, 2012. [13] http://www.plm.automation.siemens.com. Linkek utoljára ellenőrizve: 2013. május 03.
~ 52 ~
Termelésprogramozási feladatok szimulációra alapozott vizsgálata
Ábrajegyzék 1. ábra A szimuláció és a termelésinformatikai rendszerek kapcsolata ……………5 2. ábra A modellezés folyamata…………………………………………………………7 3. ábra Diszkrét eseményű állapottér…………………………………………………..8 4. ábra A modellezés felosztása………………………………………………………...9 5. ábra Esemény vezérelt rendszer idő ugrása……………………………………...17 6. ábra Az elkészült modell ……………………………………………………………19 7. ábra Munkadarabok és félkész termékek a modellben…………....…………….20 8. ábra jobok_száma lista……………………………………………………………....21 9. ábra Lista beállítása munkák (job-ok) számának megadásához……………..…22 10. ábra Kilépési-stratégia választás……………………………………………….…23 11. ábra beallit metódus részlete………………………………………………………24 12. ábra Munkák (job-ok) számának importálása…………………………………...25 13. ábra Exit stratégiák beállítása……………………………………………………..25 14. ábra Végrehajtási Lépések (Execution Step, ES) típusai a modellben……….27 15. ábra Külső forrás paraméterek beállításához…………………………………....28 16. ábra Beállított Paraméterek………………………………………………………..29 17. ábra Attribute Viewer felülete……………………………………………………...29 18. ábra Eseménykezelő menüje………………………………….…………………..30 19. ábra A modell, működés közben …………………………………………………32 20. ábra Flow shop…………………………………………………………….………..33 19. ábra FFS modell…………………………………………………………….………34 20. ábra EFFS modell……………………………………………………………….….34 21. ábra Szimuláció alapú finomterv modellje…………………….………………….39 24. ábra EndSim metódus……………………………………………………………...41 25. ábra Statisztikákat gyűjtő táblázat………………………………………………...42 26. ábra HTML riport……………………………………………………………………43 27. ábra Sankey-diagram………………………………………………………………44 28. ábra Bottleneck………………………………………………………………….…..45 29. ábra Bottleneck táblázat……………………………………………………………45 30. ábra Kibocsájtások kísérletenként………………………………………………...47 31. ábra Kísérletekhez rendelt puffer méret….......…...……………………...……...48 32. ábra Konfidencia intervallum………………………………………………………48
~ 53 ~
Termelésprogramozási feladatok szimulációra alapozott vizsgálata
Táblázatok jegyzéke
1. táblázat Modellépítési struktúra…………………………………………………….12 2. táblázat Felhasználó által meghatározott elemek………………………………...12 3. táblázat Külső alkalmazással való együttműködés……………………………….13 4. táblázat Dinamikus modellfrissítés…………………………………………………13 5. táblázat Összehasonlítás egyéb…………………..…………..……………………13
~ 54 ~
Termelésprogramozási feladatok szimulációra alapozott vizsgálata
CD melléklet tartalma
/Szakdolgozat Korbely_Gabor_szakdolgozat.pdf Szakdolgozat_kiírás.pdf Summary.pdf Összefoglalás.pdf
/Plant Simulation modell Szimulacios_vizsgalat.spp /files jobszam.xls simulation_analysis.xls machine_parameters.txt
~ 55 ~