Taylor II for Windows szimulátor

 

OKTATÁSI SEGÉDLET

a Termelési folyamatok modellezése, a Számítógépes gyártásirányítás

és a Számítógépes termelésirányítás c. tantárgyakhoz.

 

Készítették:

Dr. Erdélyi Ferenc

Szabó Gábor

Miskolci Egyetem

Gépészmérnöki Kar

Informatikai Intézet

Alkalmazott Informatikai Tanszék

Miskolc, 1997. március

 

TARTALOMJEGYZÉK

 

1. BEVEZETÉS A SZIMULÁCIÓS MODELLEZÉSHEZ

2. A TAYLOR II FOR WINDOWS SZIMULÁTOR

2.1. A TAYLOR II for Windows szimulátorról általában

2.2 A TAYLOR II for Windows szimulátorról konkrétan...

2.2.1 Gyártósor (Flow line) modellezése

2.2.2. Gyártócella (Manufacturing cell) modellezése

IRODALOMJEGYZÉK

FÜGGELÉK A

A fontosabb TLI változók áttekintése

TLI utasítások

FÜGGELÉK B

A TAYLOR II input stratégiái

FÜGGELÉK C

A gyártósor modell (demo3s) dokumentációja lista formátumban

A gyártócella modell (demo4s) dokumentációja táblázatos formátumban

 

 

1. BEVEZETÉS A SZIMULÁCIÓS MODELLEZÉSHEZ

 

A szimuláció gyakran használt módszer olyan modellek vizsgálatára, melyek nagyszámú és idôben változató determinisztikus és sztochasztikus állapotváltozókkal irhatók le. A szimuláció részletes információkat tartalmazhat a rendszer összetevôirôl, hozzá idomulhat pl. egy gyártórendszer egyedi jellegzetességeihez, értékelheti az állapotváltozók idôbeli viselkedéseket, és rendszerspecifikus mennyiségeket szolgáltathat a szimulált rendszer jóságának méréséhez.

A szimuláció akkor elônyös, ha egy rendszermodell analítikus kezelése nem valósítható meg. Sok gyártórendszer rendelkezik például olyan egyedi sajátosságokkal, melyek matematikai modellekkel zárt alakban nem kezelhetôk. Az analitikus sorbanállási hálózati modellek alkalmazása például sokszor nehézségbe ütközik, ha a vizsgálandó rendszer tartalmaz olyan közös objektumokat mint ugyanannak a robotnak a használata több munkahelyen vagy több munkahelyhez rendelt véges puffer kapacitás, stb. Egy gyártórendszer alkalmazhat komplex, dinamikus irányítási stratégiát, mely a rendszer összetevők előző állapotbeli viselkedésén és aktuális állapotán alapulhat. Ha az irányítási stratégia szabály alapú, az analitikus modellezés nagyon bonyolult lehet.

Legtöbb analítikus modell a rendszer állapotváltozóinak csak állandósult állapotát értékeli ki és így méri a rendszer viselkedését. Nem veszi viszont figyelembe a működés közben a rendszer struktúrájában beállt változásokat. Például kieshetnek egyes aktív kapacitások, vagy megváltozhatnak a rendszerrel szemben támasztott követelmények. Számos esetben különleges feltételek vagy váratlan események tranziens hatását is le kell kezelnie a modellnek. Például tanulmányozni kell a gépek meghibásodása és az ezzel járó javítások tranziens hatását a folyamatban levő munkákra. Megjelenhetnek új prioritások és ütemezési döntések, valamint az átfutási idôt befolyásoló technológiai események. A dolgozók viselkedése is fontos tényezô lehet az ütemezés és az irányítási stratégia szempontjából. A modellezés célja nagyon sokszor éppen a rendszer időben változó, dinamikus viselkedésének grafikus megjelenítése és megértése.

A szimulációs modellek többféle entitás osztályt tartalmaznak, mint pl. munkahelyeket, eszközöket, tranzakciókat és várakozó sorokat. A munkahely és az eszköz a gyártórendszer egy-egy alkotóeleme, mely végrehajt vagy segít egy operációt. Az entitás attribútumai jelentik a jelen vagy a múltbeli állapotot, mint pl. egy gép üzemel, várakozik, elromlott vagy javítás alatt van. A tranzakció egy alkatrész, információ, vagy valami más alkotóelem feldolgozását jelenti, mely felhasználja a gyártórendszer eszközeit. A tranzakció attribútumai értéket, melyek megkülönböztetik más tranzakcióktól, mint pl. műveleti idő kezdete, termék kód, esedékesség dátuma, stb.. Egy várakozó sor vagy puffer az a hely, ahol egy tranzakció várakozik egy eszközre. A sorbanálló tarnzakciók száma a várakozó sor jellegzetes attribútuma. A rendszer-modell maga is egy entitásnak tekinthető, amely rendelkezik attribútumokkal, mint pl. az aktuális szimulációs idő, a munkában lévô munkák száma, stb.

A modell állapota egy adathalmaz, vagy rekord, amely az aktuális viszonyokat mutatja a modellben. Értékét általában az entitások attribútumainak értékei határozzák meg. A rendszer állapota valamely esemény hatására változik meg. Az esemény időben meghatározott pillanatban következik be, rendszerint egy reláció teljesülése hatására. Mivel az állapotváltozások diszkrét időpontokban lépnek fel, ezért az ilyen modellezést diszkrét esemény szimulációnak nevezik.

Egy eseményt azonosítójával, bekövetkezése feltételeinek relációjával, ezek idôpontjával, és az esemény által feldolgozott entitásokkal írhatunk le. A soronkövetkező eseményeket a megelőző események ütemezik. Az események között eltelt idő lehet konstans, a modell bemenô adata, vagy valamilyen eloszlásfüggvény szerint véletlenszerűen változó értékek. Az ütemezett események halmaza, a bekövetkezés időbeli sorrendjébe rendezve alkotja az eseménylistát. A jósági indexeknek két típusa létezik. Azok az indexek, amelyek a szimulációs idő minden pontjában rendelkeznek értékekkel, mint pl. egy várakozó sor hossza vagy egy eszköz állapota, időben változó indexek. Azokat az indexeket, amelyek csak események idején mérhetők, mint pl. az az időtartam, amelyet egy alkatrész a gyártásban eltölt, megfigyelhetô indexeknek nevezzük.

A szimulációs nyelv olyan speciális célú számítógépes nyelv, mely tartalmazza a modell felépítéséhez szükséges adat-szerkezeteket és képességeket valamint beépített eszközöket a modellek tapasztalati elemzéséhez és a szimuláció eredményeinek megjelenítéséhez.

A szimulációs rendszer a szimulációs nyelvet integrálja más szoftver eszközökkel, mint pl. grafikus modell szerkesztőkkel, statisztikai elemzőképességekkel, animációfejlesztőkkel, valamint jegyzőkönyv és állapotdiagramm generálási lehetőségekkel.

 

2. A Taylor II for Windows szimulátor

 

  • 2.1. A TAYLOR II for Windows szimulátorról általában
  • A TAYLOR II for Windows szimulátor (a késôbbiekben egyszerűen: TAYLOR II) az F&H Simulations B.V. holland cég terméke. A TAYLOR II olyan programcsomag, amely alkalmas a valós világ diszkrét, esemény-vezérelt rendszereinek modellezésére, különösen a gyártó-, logisztikai- és szolgáltató rendszerek modellezésére.

    A TAYLOR II egy vizuális interaktív szoftvercsomag, mely lehetôvé teszi a szimulációs modellek grafikus fejlesztését, a szimulált rendszer dinamikus megjelenítését, valamint a felhasználó beavatkozását a futó alkalmazásba. Beavatkozás alatt azt értjük, hogy a szimuláció megállítható és információt kérhet a felhasználótól, vagy a felhasználó is leállíthatja a szimulációt és beavatkozhat, pl. új paraméterekkel folytathatja a szimulációt.

    A szoftver fejlesztési változata csak hardver-kulccsal védett állapotban futtatható. A run-time változat futtatásához az alkalmazáson kívül csak a DOS 6.x és Windows 3.x vagy a Windows95 operációs rendszer szükséges.

  • A TAYLOR II a t4w könyvtárból a t4w.exe paranccsal vagy ikonjával indítható.
  • A TAYLOR II alapvetô modellezô entitásai:

    Az elemek a modell erôforrásai. Egy modell felépítése mindig az elemek elrendezési rajzával, a lay-out-tal kezdôdik.

    Elemtípusok:

    Gépek (Machine): Erôforrások általános megjelenítési formája.
    Segédeszköz (Aid): Gépekhez hozzárendelt, adott operációhoz szükséges eszköz pl. szerszám, operátor, stb.

     

    Passzív anyagtároló (Buffer): Általánosan használt tároló eszköz (puffer).

    Forrás-nyelô (InOut): A termékek rendszerbe léptetésére (generálására) ill. eltávolítására ("megevésére") szolgáló eszköz.
    Tartály (Reservoir): Ömlesztett, folyékony anyagok szimulációjára használt tároló eszköz. (pl. tartály amely nyitva/zárva áll.)
    Raktár (Warehouse): Termékek pozícionálálása is alkalmas puffer.

     

    Aktív anyagmozgató (Transporter): Általános célú szállítóeszköz egyedi termékek vagy sorozatok (batch) szállítására. Ha szállítási nyomvonalat (path) használunk, külön idôt rendelhetünk hozzá, és várakozó sorok is modellezhetôk.
    Szállítószalag (Conveyor): Tárolásra és folyamatos szállításra alkalmas eszköz, különösen ha a termékeket késleltetni akarjuk a puffer elhagyásakor.
    Szállítási nyomvonal (Path): Különleges elem, amely nem terméket, hanem pl. aktív anyagmozgató nyomvonalát, viselkedését határozza meg.

     

    Általános megjegyzés: A modell megtervezésekor elsô lépésben használjuk a gép és puffer elemeket. Speciális elemeket csak akkor alkalmazzuk ha valamilyen részletre vagyunk kíváncsiak (Pl. segédeszköz kezelés, beállítás (setup) idôk) vagy vizualizációs célokra (szállítási nyomvonal - távolságok figyelembe vétele, stb.) .

    Az elemek entitás osztályokhoz tartoznak. Az elemek egyedei különbözô attribútumokat tartalmaznak:

    Az elemek csoportokba (cluster) szervezhetők. A csoport a modell egy "almodelljét" jelenti, az elemek olyan csoportját, mely tartalmazza az elemek közötti útvonalat (routing). A modell maga az alapcsoport (root cluster), mely egy vagy több alcsoportot is tartalmazhat és ilyen módon hierarchikus modellt építhetünk fel.

    Fontos megjegyzés: A TAYLOR II szimulátor a művelettervet (a Taylor rendszerben angolul - job), amely a valóságban a termék objektum attribútuma, elsődlegesen a munkahely elemhez rendeli. Ennek az a következménye, hogy a több különböző terméket és alternatív műveleti sorrendterveket kívánó modellek csak körültekintő modellezéssel, változó tömbök, mátrixok bevezetésével valósíthatók meg. A TAYLOR II terminológiájában használt "job" fogalom a munkahely elemhez rendelt operációt (pl. esztergálás, marás, mérés, minőségvizsgálat, pénztári kifizetés, stb...) jelenti.

     

    A TAYLOR II fő menüpontjai és opciói:

     1. File

     

     

     

     

     2. Modell

     

    3. Szimuláció

     

     

    4. Eredmények

     

     

     

     

    5. Vizualizációs paraméterek beállítása

     

     

     

     

     

     

     

     6. Modellezési paraméterek beállítása

     

     

     

     

     

    7. Eszközök

     

     

     

     

     

     

     

     

     

    8. Ablakok kezelése

     

     

     

     

    9. Súgó

     

     

     

     

     

     

     2.2 A TAYLOR II for Windows szimulátorról konkrétan...

    Két egyszerű példamodellen szeretnénk bemutatni a szimulátor fô tulajdonságait, képességeit.

  • 2.2.1 Gyártósor (Flow line) modellezése
  • A modell megalkotása során az elsô lépés az elemek elrendezése, az aktív anyagmozgatók szállítási nyomvonalának megadása a cellában (lásd. a 2.1. ábrán).

    2.1. ábra A gyártósor elrendezési vázlata

     

    Az 1. tárolórón érkeznek a nyersdarabok a cellába, majd a 2. pufferen várakoznak a 3. fúró-maró központra. A művelet elvégzése után a 4. pufferen keresztül a félkész darabok az 5. hôkezelô kemencébe kerülnek csomagok formájában. Ezután a termékek a 6. pufferen várakoznak a 7. mérôállomásra, mely megvizsgálja és szétválogatja a jó munkadarabokat a 15. pufferbe, a selejtes munkadarabokat (kb. a darabok 20%-a selejtes) a 14. pufferbe. Aktív anyagmozgató kocsik (12., ill. 10.) szállítják a kész munkadarabokat a 11. raktárba, a selejtes termékeket pedig a 8. gyűjtôpufferbe.

     

    Megjegyzés: A példában azért nem forrás-nyelô elemet választottunk a termékek cellába irányításánál, mert mint majd késôbb látni fogjuk, a termékek ütemezett sorrendben és darabszámban érkeznek és ekkor puffer elemként kell megadnunk a forrást. A selejtes termékek tárolása a 8. pufferen szemléltetési célokat szolgál.

     

    A tervezés második lépése a termékek útvonalának (routing) meghatározása a gyártósoron belül. Erre szolgál a Model | Layout menüpontból elérhetô ikon + . Lenyomása után az elrendezési vázlaton grafikusan megjelennek az elemekhez rendelt Stage | Send to, Receive from paraméterekben megadott bejárási útvonalak (lásd 2.2. ábra).

     

    2.2. ábra A termékek lehetséges bejárási útvonolai

     

    Megjegyzés: Alapértelmezésben a modell elemek létrehozásakor a Stage | Send to paraméterhez a program automatikusan hozzárendeli a sorszám szerint soron következô elem Stage számát. Ezáltal azt feltételezi, hogy a technológia szerint is az lesz a következô operáció helyszíne. Ez azonban mind grafikusan, mind a paraméterek átírásával módosítható.

     

    A gyártósor modellben a termékek kötött logisztikai sorrendet követnek, ebbôl következôen a műveleti sorrendeknek nincsenek változatai. A példában ugyan a 7. mérôállomásról a termékek két irányban haladhatnak tovább a raktárba ill. a gyűjtôpufferre, ez azonban nem befolyásolja az alapmodell lényegét. Hasonló a helyzet az egymást helyettesítô gépek beiktatása esetén is, amikor bizonyos technológiai műveletek párhuzamosan, egyidôben végezhetôk. Ekkor csökken a job-ok átfutási ideje (Makespan), ezenkívül feloldható az esetleges "szűk keresztmetszet" problémája.

     

    A harmadik lépés a modell elem, operáció, bejárási útvonal és egyéb paramétereinek meghatározása, azaz a konkrét feladat részleteinek "beidomítása" TLI változók, TLI utasítások, függvények, paraméterek, táblázatok, stb. segítségével.

     

    A szimuláció általában a változók kezdeti értékének beállításával kezdôdik. A Settings | Simulate | Parameters menüpontban az alábbi beforefunc függvény megadásával inicializálható, illetve a Popup "3 "állapotában a 2.3. ábrán található üzenetablak jelenik meg:

     function beforefunc

    init[1,1]:=1

    init[1,2]:=0

    ahol init[1,1]: a hôkezelô kemencébe érkezô csomagkapcsolt termékek száma

    init[1,2]: a selejtes termékek száma

     

     

    A következô lépés a termékek darabszámának és érkezési sorrendjének meghatározása, egy ütemterv táblázat kitöltése. A példában négy különbözô kóddal ellátott termék (nyersdarab) érkezik a cellába 1-4-3-2 sorrendben. A táblázat elsô oszlopában a termék érkezési ideje, a második oszlopban a termék kódja, a harmadikban az útvonal helyszíne, ahonnan a termék érkezik, a negyedik oszlopban a termék darabszáma látható a 2.4. ábrán. Egy adott modellhez több érkezési ütemtervet is rendelhetünk, így összehasonlító elemzések is végezhetôk.

    Az 1. tároló elem Elements | Element parameters | More alpontjában a bemeneti stratégiák közül választottuk ki az ütemezett érkezéseket (Scheduled arrivals).

     

    2.4. ábra Termékek érkezésének ütemterv táblázata

     

     

    A következô lépésben a megmunkálási folyamatban szereplô elemek (fúró-maró központ, hôkezelô kemence és mérôállomás) műveleti ciklusidôit adjuk meg a négyféle terméktípusra a ctime táblázatban (2.5. ábra). A táblázatban a sorok a termékkódokat, az oszlopok a gépeket jelentik. A 7. mérôállomás műveleti ciklusideje 400 [s] átlagérték körül, 100 [s] átlagos eltéréssel normális eloszlás szerint váltakozik. Az Elements | Job parameters | Time alpontjában rendelhetjük hozzá a táblázat elemeit az aktuális operációhoz a következô TLI változóval:

     

    pl. Elem 3, Operáció 3: ctime[product[E,1],1].

    Elem 5, Operáció 5: ctime[product[E,1],2]

     

    Jelentése: ctime[az aktuális E elemen levô termék kódja, a gép sorszáma a táblázatban]

     

    Elsô példánkban minden egyes elemhez egyetlen operáció és egyetlen bejárási útvonal helyszín tartozik, ezért a sorszámok egyszerűen azonosíthatók.

     2.5. ábra

    Az 1. tároló elem Elements | Job parameters | Trigger on Exit alpontjában a következô TLI állítás szerepel:

    if lastprodout[1]<>curprod[1] then init[1,1]:=init[1,1]+1.

     

    Jelentése: Ha az 1. elemet utoljára elhagyó termék kódja különbözik az aktuális termékkódtól, akkor növelje eggyel az init[1,1] értékét (1, 2, 3, 4).

     

    Értelme: Az 5. hôkezelô kemence csomagkapcsolt operációja megköveteli, hogy ha a új terméktípus következik a gyártósoron be tudjuk állítani az Elements | Job parameters | Batch in ill. out megfelelô értékét az alábbi módon:

     

    Batch in: schedquant[1,init[1,1]]

    Batch out: schedquant[1,init[1,1]]

     

    Jelentése: Az 1. érkezési ütemterv aktuális termékéhez rendelt összdarabszám beállítása a termékcsomagok hôkezeléséhez. A csomagok mérete és műveleti ciklusideje terméktípusonként változik a ctime táblázat 2. oszlopa szerint (2.5. ábra).

     

    A triggerek olyan TLI állítások, melyek egy esemény (Pl. termék belépése vagy kilépése egy operációból) bekövetkezésekor értékelôdnek ki. Fontos megjegyezni, hogy az att1[x,y]...att16[x,y] attribútumok csak triggerek használatával aktualizálódnak. A 7. mérôállomás att1[C]:=random[99] belépési triggere azt jelenti, hogy az éppen az elemre belépett termékhez rendeljünk hozzá egy 0..99 közé esô véletlen számot. Ezt az Elements | Stage parameters | Send to alpontjában használjuk fel olyan módon, hogy ha az att1[C]<20, akkor selejtes lesz a termék, ha nem, akkor és a raktárba továbbítjuk:

    select 1 from (if att1[7,1]<20 then 14 else 15).

     

    A szimuláció során folyamatosan figyelemmel követhetjük a szimulációs idôt, a gépek kihasználtságát, pufferek blokkolt összidejét, gépek várakozó állapotának százalékos alakulását a szimulációs idô arányában, stb. E célra szolgálnak a dinamikus ikonok, melyek közül 4 külön kis ún. monitoring ablakban jeleníthetô meg (2.6. ábra), a többi a modell ablakon belül kis téglalapokban.

     

    Monitor ablak TLI változó vagy állítás

    1

    100*(totidletime[3]/time)

    2

    utilization[5]

    3

    time/60

    4

    totblockedtime[6]/60

    2.1. táblázat

      2.6. ábra

    Megjegyzés: A 2.1. táblázatban ill. a 2.6. ábrán látható eredmények perc-ben értendôk, míg a szimulációs idôt kijelzô óra másodpercben mutatja az eltelt idôt.

     

    A dinamikus ikonok megjelenítési formái: hisztogramm, vonal-, oszlop és tortadiagrammok, szöveg, érték, ikon, stb.

     

     

    A szimuláció egyik legfontosabb célja annak vizsgálata, hogy a vizsgálni kívánt minôségi indexek pl. átfutási idô, kihasználtsági mutatók, várakozó 2.7. ábra

    sorok, gépek leterheltsége ill. szabad kapacitásai hogyan változnak meg különbözô kezdeti feltétetek és elem paraméterek módosítása során. A szimulációs eredmények grafikus megjelenítése a Result | Element Graphs és Status Diagram menüpontokban történik. A 2.7. ábrán a 9. kocsi kihasználtsági tortadiagrammja látható, mely az állapotok százalékos arányát ábrázolja (jelentésüket lásd Függelék A status[x] változó magyarázatánál).

    Az erôforrások job leterheltségét és állapotait szemléltetô ún. Gantt diagrammot a Result | Status Diagram alatt találjuk (2.8. ábra). A gyakorlatban ismert a job-ok szerint ábrázolt Gantt diagram is, a Taylor II alapértelmezésben nem tartalmazza ezt a szemléltetési módot. A Tools | User Defined Graph alpontban a felhasználó megadhat olyan TLI állításokat, melyeket 14 féle diagramm típuson ábrázolhat.

    2.8. ábra Gantt diagramm (erôforrások szerint)

     

  • 2.2.2. Gyártócella (Manufacturing cell) modellezése
  • A cella struktúrájú rendszerre jellemzô, hogy zárt termelési csoportot képez. Egy gyártócella technológiailag meghatározott feladatok elvégzésére képes, azonban tartalmazhat egymást helyettesítô gépkapacitásokat is. A cella gépein a termékek a job-ok ütemezett sorrendjében kerülnek megmunkálásra ill. feldolgozásra. A job-ok az egyes termékekhez tartozó operációk (technológiailag kötött!) sorrendjét és ciklusidejét írják le. A job-ok sorrendje általában nem kötött, sok esetben azonban a prioritás, az elkészülés határideje, a beérkezés idôpontja, stb vagy optimálandó célfüggvények korlátozhatják a job-ok felszabadításának (release) sorrendjét, azaz indítását.

     

    A következô példában egy egyszerű, két gépes gyártócella modelljét elemeztük a TAYLOR II-val. A cella két NC-esztergából (2., 3.) és egy mérôállomásból áll (4.) (2.9. ábra).

    2.9. ábra A gyártócella elrendezési vázlata

     

    A négy szállítószalag (5., 6., 7., 8.) a valóságban egy lóversenypálya alakú, végtelenített szállítószalagot modellez. A 9. pufferrôl érkeznek a termékek a 8. majd a 7. szállítószalagra. Az 1. elem (Machine) egy két-megfogópofás 2.10. ábra

    RTT típusú hengerkoordinátás robotot modellez. Ez azt jelenti, hogy feltételezzük, a robot egyidôben maximum két terméket tud mozgatni, ezért a kapacitása 2. Ilyen esetben további megfontolást igényel a robot lineáris- és szögsebessége, melyet idôegységre átszámolva kell megadni a ctime táblázatban műveleti ciklusidôként. A modell megalkotásában figyelembe kell venni, hogy a gépek között nincsenek ideiglenes tároló elemek (pufferek), ezért korlátozni kell a robot által a gépekhez továbbított termékek számát:

     

    1. Robot:

    Entry trig. - prodin[1,1]:=prodin[1,1]+1

    Exit trig. - prodin[1,1]:=prodin[1,1]-1

     

    7. Szállítószalag

    Exit cond. - prodin[1,1]<=1

     

    Megjegyzés: Egy új termék csak akkor hagyhatja el a 7. szállítószalagot és léphet be a robot munkaterébe, ha a gépek ill a robot munkaterében összesen maximum 1 termék tartózkodik.

     

    A megmunkált termékek az 5.-6.-8. szállítószalagokon továbbítódnak a 10. pufferre.

    A 2.10. ábrán a modell 3D-s elrendezése látható. Nagyobb, komplex gyártórendszerek modellezésénél a 3D-s, perspektívikus szemléltetési mód (3d wire, 3D solid) áttekinthetôvé és valósághűbbé teszi a modellt.

    A modellre jellemzô a több operáció és a többszörös bejárási útvonal (helyszín), melyet a Settings | Model alpontban állíthatunk be. Ez azt jelenti, hogy egy elemen több különbözô operáció is elvégezhetô ill. a termék többször érinthet útja során különbözô helyszínként egy elemet.

     

    Példánkban összesen 10 darab, 1. típusú és 2. típusú termék érkezik felváltva, megfelelô idôközönként a gyártócellába (lásd 2.11. ábra).

    2.11. ábra

    Amint láthattuk az elôzô gyártósor példában, a bejárási útvonalat egyszerűen a gépek ill. munkahelyek grafikus összekötésével (Model | Layout) határoztuk meg. A gyártócella modellben a termékek a job-oknak megfelelôen különbözô utakat járnak be, ezért ezt egy táblázatban kell megadnunk. A 2.2. táblázat sorai a terméktípusokat, oszlopai a bejárási útvonal helyszíneket, a mezôk az aktuális helyszínhez tartozó Stage | Send to paramétert tartalmazzák:

     

     

    1

    2

    3

    4

    ...

    11

    12

    13

    14

    ...

    21

    ...

    31

    1

    2

    11

    0

    0

    0

    0

    0

    0

    0

    0

    13

    0

    21

    2

    3

    0

    11

    21

    0

    0

    0

    14

    0

    0

    0

    0

     

     

    Táblázat 2.2.

     

    Az alábbi, 2.3. táblázat sorai a terméktípusokat, oszlopai a bejárási útvonal helyszíneket, a mezôk az aktuális helyszínhez tartozó Job | Time paramétert tartalmazzák:

     

     

    1

    2

    3

    4

    ...

    11

    12

    13

    14

    ...

    21

    ...

    31

    1

    100

    1000

    0

    0

    0

    100

    0

    500

    1500

    4

    300

    0

    300

    2

    100

    0

    500

    1500

    0

    300

    1000

    0

    0

    0

    300

     

    100

     

    Táblázat 2.3.

     

    A Settings | Model alpontban állítható be, ha egy elemhez több operációt és egy operációhoz több útvonal helyszínt akarunk rendelni.

     

    Operációk jelölései:

     

    Robot (E1): J1, J11, J21, J31

    NC_eszterga_1 (E2): J2, J12

    NC_eszterga_2 (E3): J3, J13

    Mérôállomás (E4): J4, J14

     

    Természetesen az operációk sorszámozása J1...J10 tartományban is lehetséges, esetünkben az érthetôség kedvéért a gépek sorszáma szerint adtuk meg.

     

    A két táblázat együttesen határozza meg az adott termékre vonatkozó műveleti terveket. A job, azaz a termékek gyártására adott rendelések modellezéséhez még szükségünk van a fent említett ütemterv táblázatra is.

     

    Néhány szót kell ejtenünk még a robot különleges szerepérôl a modellben. A robot mozgása nem szimulálható és animálható a modellben, egyszerűen gépként írható le. Ebbôl következik, hogy a kiszolgálási idôket (ellentétben az aktív anyagmozgatóval pl. AGV), nem tudjuk valós idôben modellezni. A 2.2. táblázatban a robotmozgásokhoz tartozó idôket a termék által megtett úttal arányosan adtuk meg konkrét értékekkel. Egy szerelô robot modellezése esetén nem csupán a szerelési idôket kell tekintetbe venni, hanem a megfogó pofák cseréjét is külön idôként.

     

    A szimuláció végén a 10. Puffer-re érkezô termékek számlálásával

    Entry trig.: if elqueue[10]>=9 then message["Szimuláció vége!"]

    kijelezhetjük a "Szimuláció vége" üzenetet egy külön ablakban (2.12. ábra).

     

    2.12 ábra Üzenet ablak

     

    A TAYLOR II lehetôvé teszi a TLI parancsok és változók felhasználásával a szimuláció csomagkapcsolt (batch) futtatását. Az alábbiakban bemutatjuk a modell demo4s.bch batch run file-ját, a kapott eredmények képernyô kimenete a 2.13. ábrán látható:

     

    #tpos 35,11 /*szöveges képernyô kimenet pozíciója*/

    #font 2,4,8 /*font típusának, méretének és színének beállítása*/

    #circ 45,14,10,11 /*színnel telített kör rajzolása megadott pozícióban*/

    #info /*Információ sorainak megjelenítése*/

    Gyártócella modellezése

    #info

    #wait 1 /*várakozás 1 másodpercig*/

    #butt Presentation,2,2,29,21,7,0 /*Ablak adott felirattal, méretekkel és színnel*/

    #butt 3,3,27,18,15,1

    #tpos 4,4

    #font 1,4,8

    #info

    A gyártócella két NC esztergából és

    egy mérôállomásból áll.

     

    #info

    #wait 1

    #anim 1 /*Animáció gyors teszteléshez*/

    #X[1..4] /*A demo táblázat elemeinek kinullázása*/

    #Y[1..8]

    demo[X,Y]:=0

     

    prodin[1,3]:=0.8 /*Sebesség override:=80%*/

    #simu 30000 /*Szimuláció futtatása 30000 idôegységig*/

    demo[1,1]:=utilization[1] /*A demo táblázat elemeinek feltöltése*/

    demo[2,1]:=totblockedtime[1]/60

    demo[3,1]:=time/60

    demo[4,1]:=prodin[1,3]

     

    prodin[1,3]:=0.9

    #simu 30000

    demo[1,2]:=utilization[1]

    demo[2,2]:=totblockedtime[1]/60

    demo[3,2]:=time/60

    demo[4,2]:=prodin[1,3]

     

    prodin[1,3]:=1

    #simu 30000

    demo[1,3]:=utilization[1]

    demo[2,3]:=totblockedtime[1]/60

    demo[3,3]:=time/60

    demo[4,3]:=prodin[1,3]

     

    prodin[1,3]:=1.1

    #simu 30000

    demo[1,4]:=utilization[1]

    demo[2,4]:=totblockedtime[1]/60

    demo[3,4]:=time/60

    demo[4,4]:=prodin[1,3]

     

    prodin[1,3]:=1.2

    #simu 30000

    demo[1,5]:=utilization[1]

    demo[2,5]:=totblockedtime[1]/60

    demo[3,5]:=time/60

    demo[4,5]:=prodin[1,3]

     

    prodin[1,3]:=1.3

    #simu 30000

    demo[1,6]:=utilization[1]

    demo[2,6]:=totblockedtime[1]/60

    demo[3,6]:=time/60

    demo[4,6]:=prodin[1,3]

     

    prodin[1,3]:=1.4

    #simu 30000

    demo[1,7]:=utilization[1]

    demo[2,7]:=totblockedtime[1]/60

    demo[3,7]:=time/60

    demo[4,7]:=prodin[1,3]

     

    prodin[1,3]:=1.5

    #simu 30000

    demo[1,8]:=utilization[1]

    demo[2,8]:=totblockedtime[1]/60

    demo[3,8]:=time/60

    demo[4,8]:=prodin[1,3]

     

    #butt Results,10,2,44,37,7,0

    #butt 11,3,42,35,15,1

    #tpos 12,4

     

    #info /* Eredmények kiértékelésének megjelenítése*/

    Sebesség override optimumkeresés>>

     

    Robot maximális kihasználtsága esetén:

     

    A robot kihasználtsága: TLI>demo[1,demo@ima[1..1,1..8]]<TLI %.

    A robot blokkolt összideje:TLI>demo[2,demo@ima[1..1,1..8]]<TLI min.

    Az átfutási idő: TLI>demo[3,demo@ima[1..1,1..8]]<TLI min.

    A robot sebesség override:TLI>demo[4,demo@ima[1..1,1..8]]<TLI %.

     

    Robot minimális blokkolt ideje esetén:

     

    A robot kihasználtsága: TLI>demo[1,demo@imi[2..2,1..8]]<TLI %.

    A robot blokkolt összideje:TLI>demo[2,demo@imi[2..2,1..8]]<TLI min.

    Az átfutási idő: TLI>demo[3,demo@imi[2..2,1..8]]<TLI min.

    A robot sebesség override:TLI>demo[4,demo@imi[2..2,1..8]]<TLI %.

     

    Cella minimális átfutási ideje esetén:

     

    A robot kihasználtsága: TLI>demo[1,demo@imi[3..3,1..8]]<TLI %.

    A robot blokkolt összideje:TLI>demo[2,demo@imi[3..3,1..8]]<TLI min.

    Az átfutási idő: TLI>demo[3,demo@imi[3..3,1..8]]<TLI min.

    A robot sebesség override:TLI>demo[4,demo@imi[3..3,1..8]]<TLI %.

     

    #info

    #wait 30

     

    Megjegyzés: A TAYLOR II 4.1. verziója még nem teszi lehetôvé a szimulációs parancsok (#simu, #warm, #goto) ciklusba szervezését, így a sebesség override-ok 0.8...1.5 tartományban csak külön lépésekben változtathatók meg és futattható újra a modell szimulációja.

     

    2.13. ábra Az eredmény kimenete a képernyôn

     

    A felhasználó jelentéseket készíthet a Result | Reports | Select és Columns menüpontban, mely egy szöveges file-t ad eredményül a meghatározott TLI változók aktuális értékeivel (2.14. ábra).

     

    Megjegyzés:

    A szimulációs program- csomag támogatja a jelentések felhasználó által meghatárott formátumú file-ba való kiiratását a #file filenév, #line TLI parancsokkal. Az overide értelmezése itt operációs idôkre és nem sebességre vonatkozik!!

     

     

     

    demo4s Taylor II demo4s Date: 13-03-1997 Time: 12:09

    =====================================================================

    Robot kihasznaltság Robot blokkolt ideje Átfutási idô [min] Sebesség override %

    -------------------- -------------------- -------------------- --------------------

    40.51 63.00 411.43 0.80

    44.53 61.50 421.10 0.90

    48.36 60.00 430.77 1.00

    51.74 57.67 442.93 1.10

    54.69 56.33 457.10 1.20

    55.87 62.00 484.77 1.30

    57.87 61.00 500.00 1.40

    61.77 60.00 500.00 1.50

     

    IRODALOMJEGYZÉK

     

    [1] Askin, Ronald G., Standridge, Charles R.: MODELING AND ANALYSIS OF MANUFACTURING SYSTEMS (1993 - John Wiley & Sons)

    [2] F&H Simulations B.V. (1996): TAYLOR II for Windows TUTORIAL

     

    [3] F&H Simulations B.V. (1996): TAYLOR II for Windows USER’S GUIDE

     

    [4] F&H Simulations B.V. (1996): TAYLOR II for Windows TLI

     

    [5] F&H Simulations B.V. (1996): TAYLOR II for Windows EXAMPLES, APPENDICIES

     

    [6] http://www.taylorii.com 

     

      

    Köszönetnyilvánítás

     

     Ez az oktatási segédlet A számítógépes termelésirányítás, gyártásirányítás és szimuláció eredményeinek bevezetése az oktatásba című, AMFK-685/95. jelű projekt támogatásával készült.

     

     

     

    FÜGGELÉK A

  • A fontosabb TLI változók áttekintése
  • address[x] (útvonal) Bejárási útvonal címe, ahová a termékek kerülnek az x helyrôl. Ez a változó csak akkor használható, ha a cím nem kifejezés.
    att1[x,y] .. att16[x,y]

    (elem, termék pozíció)

    Az y. termék attribútumának értéke a sorban az x. elemen.

    pl. att4[12,240] a 240. termék 4. attribútuma a 12. elemen.

    (csak trigger esetén aktualizálódik)

    avgqueue[x] (operáció) A termékek számának átlaga az x operáción a szimuláció idején.
    avgwait[x] (operáció) A termékek x operáción töltött átlagos ideje (idôegységben).
    curcycle[x] (operáció) Az aktuális ciklusidô értéke az x operáción.
    curjob[x] (elem) Az aktuálisan választott operáció az x elemen.
    curprod[x] (elem) Az aktuálisan választott termék az x elemen.
    curstage[x] (elem) Az aktuálisan választott bejárási útvonal helye az x elemen.
    elqueue[x] (elem) Az aktuálisan az x elemen található termékek száma.
    fixcost[x] (elem) Az x elem fix költsége (ár/idôintervallum).
    intcost[x] (elem) Az x elem kamat költsége.
    location[x,y] (elem) Csak szállítószalagok és raktárak esetén alkalmazható.

    Szállítószalag: Az y. termék helyzete az x. szállítószalagon.

    Raktár: Az y. termék helyzete az x. raktárban.

    matrix[x,y] A mátrix x. sorának y. oszlopának eleme.
    maxqueue[x] (elem) Az x. elemen egyidôben tartózkozó termékek maximális száma. Csak passzív tárolók esetén alkalmazható.
    message["üzenet"] Üzenetablakot jelenít meg és mindig 0 a visszatérési értéke.
    minqueue[x] (elem) Az x. elemen egyidôben tartózkozó termékek minimális száma. Csak passzív tárolók esetén alkalmazható.
    mtbf[x] (elem) Meghibásodások között eltelt idô az x. elemen.
    mttr[x] (elem) Az x. elem hibaelhárításával eltelt idô, más szóval az üzemzavar idôtartama.
    processed[x] (operáció) Az x. operáció által feldolgozott termékek száma. Összevetve a produced[x]-el: Általában a kettô azonos, kivéve, amikor selejt keletkezik vagy különbözô bemeneti és kimeneti csomagok vannak.
    prodqueue[x,y]

    (elem, termék)

    Az y. termékkóddal rendelkezô termékek aktuális száma az x. elemen.
    produced[x] (operáció) Az x. operáció által legyártott termékek száma. Összevetve a processed[x]-el: Általában a kettô azonos, kivéve, amikor selejt keletkezik vagy különbözô bemeneti és kimeneti csomagok vannak.
    product[x,y]

    (termék, termék pozíció)

    Az x. elem sorában található y. termék termékkódja.

    (csak trigger esetén aktualizálódik)

    random[x] Diszkrét véletlen értékkel tér vissza a 0..x tartományban.
    schedat1[x,y]...

    schedat4[x,y]

    Az x. ütemterv y. rekordjának 1. ... 4. attribútuma.
    schedprod[x,y] Az x. ütemterv y. rekordjának termékkódja.
    schedquant[x,y] Az x. ütemterv y. rekordjának mennyisége (darabszáma).
    schedstage[x,y] Az x. ütemterv y. rekordjának bejárási útvonalhelye.
    schedtime[x,y] Az x. ütemterv y. rekordjának ütemezett ideje.
    status[x] (elem) Az x. elem aktuális állapotával tér vissza.

    Állapotok: 1=működik, 2=várakozik, 3=blokkolt, 4=üzemzavar miatt leállt, 5=üzemszünet, 6=kikapcsolva, 7=feltöltés/kitárolás alatt, 8=semmi, 9=tele mozog (pl. AGV), 10=üresen mozog (pl. AGV)

    time Az aktuális szimulációs idô.
    timespent[x] (operáció) Az aktuális termék x. operáción eltöltött ideje.
    totblockedtime[x] (elem) Az x. elem blokkolt állapotban eltöltött összes ideje (idôegységben).
    totbusytime[x] (elem) Az x. elem működô állapotban eltöltött összes ideje (idôegységben).

    Megjegyzés: 100*(totbusytime[x]/time)=utilization[x]

    totidletime[x] (elem) Az x. elem várakozó állapotban eltöltött összes ideje (idôegységben).
    utilization[x] (elem) Az x. elem kihasználtsága a teljes idô százalékában.

     

  • TLI utasítások
  • Fô csoportjai:

     

    #anim Animációs szint változtatása (csomagkapcsolt futtatás esetén)

    1: Nincs információ 2: Statisztikai

    3: Egyszerű 4: Teljes

    #area Szöveges vagy illusztrációs terület megjelenítése a képernyôn.
    #butt ‘Nyomógomb’ vagy ablak megjelenítése.
    #circ Kör rajzolása a képernyô egy meghatározott pontjában.
    #clus Csoport nevének szövegét kiteszi a jelentésbe.
    #cont Szimuláció folytatás a szimulációs idôig.
    #decm Decimális számjegyek számának beállítása a TLI eredményekhez.
    #enme Elem nevének szövegét kiteszi a jelentésbe
    #exec TLI utasítás végrehajtása a megadott szöveges file-ban.
    #expl TLI magyarázó szöveg kiiratásának be- ill. kikapcsolása.
    #file Név szerint kiírja a megfelelô file-t a kimenetre, on/off elindítja/leállítja.
    #font Font típusának, méretének és színének beállítása.
    #freq Képernyô frissítési idôköz idôegységekben.
    #goto Szimuláció folytatása a megadott idô paraméterig.
    #info Információs szövegek kiiratása a képernyôre.
    #jnme Operáció nevének kiiratása a jelentésbe (Results | Reports).
    #line Üres vagy tartalommal töltött sorok kiiratása szöveges file-ba.
    #mess Interaktív üzenet megjelenítése értékadás céljából.
    #name Az aktuális modell nevét adja vissza.
    #open Szimulációs modell megnyitása.
    #pict Bittérképes (.bmp) file adott pozícióba helyezése a képernyôn.
    #save Aktuális modell elmentése.
    #simu Szimuláció a megadott idô paraméterig
    #snme Útvonal helyszín nevének kiiratása a jelentésbe (Results | Reports).
    #text Megjegyzés szöveg a TLI parancsfile-ban.
    #tpos Szövegkiiratás x,y pozíciója a képernyôn.
    #ttex Szöveg kiiratása meghatározott ideig a képernyô egy adott pozíciójába.
    #velo Animáció sebességének beállítása.
    #view Nézôpont beállítása megadott file-ból és a modell frissítése.
    #wait Várakozás meghatározott ideig vagy egy billentyű lenyomására.
    #warm Szimuláció meleg-indítása (Simulate | Single run | Warmstart).

     

    FÜGGELÉK B

  • A TAYLOR II input stratégiái
  • None Az elem minden esetben fogadja a terméket (alapértelmezés).
    Not blocked Addig nem fogadja a terméket, amíg az útvonalon soron következô puffer nem szabad. Tipikus JIT modellekben:
    Available Az elem rendelkezésre áll. Nincs kikapcsolva, üzemzavar miatt leállítva ill. nincs üzemszünet alatt.
    Empty element Termékcsomagok megmunkálása esetén csak akkor fogad újabb termékeket, ha az összes terméket már megmunkálta
    Empty job Csak akkor fogadja a terméket, ha más terméken nincs ugyanaz az operáió.
    Empty stage Csak akkor fogadja a terméket, ha más termék nincs ugyanazon az útvonal helyszínen.
    Empty product Csak akkor fogadja a terméket, ha nincs másik, ugyanolyan kódú termék az elemen.
    One job Csak akkor fogadja a terméket, ha üres az elem vagy ugyanazt az operációt kell végrehajtani.
    One stage Csak akkor fogadja a terméket, ha üres az elem vagy ugyanazt az operációt kell ismételten végrehajtani.
    One product Csak akkor fogadja a terméket, ha üres az elem vagy ugyanolyan kódú termék érkezik az elemre.
    Entry from one location Csak akkor fogadja a terméket, ha üres az elem vagy ugyanarról az elemrôl érkezik, mint az aktuális termék.
    Entry at one moment Csak akkor fogadja a terméket, ha üres az elem vagy ugyanabban a pillanatban érkezett a termék az elemre, mint az aktuális termék.
    Scheduled arrivals Ütemtervben (Schedule nr.) meghatározott idôben érkeznek a termékek az elemre. Az elem várakozik a termékre addig, amíg a hozzátartozó idô eléri a szimulációs idôt.
    Scheduled arrivals (repeat) Ütemtervben (Schedule nr.) meghatározott idôben érkeznek a termékek az elemre. Az elem várakozik a termékre addig, amíg a hozzátartozó idô eléri a szimulációs idôt, majd újra kezdi a ciklust.
    Scheduled planning Ha az ütemtervnek (Schedule nr.) megfelelôen érkezik a termék az elemre, akkor fogadja és a következô rekord bejegyzése szerint vár a következô termékre.
    Scheduled planning (repeat) Ha az ütemtervnek (Schedule nr.) megfelelôen érkezik a termék az elemre, akkor fogadja és a következô rekord bejegyzése szerint vár a következô termékre. Az ütemterv végén újrakezdi a folyamatot.

     

     

     

    FÜGGELÉK C

    demo3s Taylor II Model Documentation Date: 16-01-1997 Time: 13:40

    =========================================================================

      

    GENERAL REMARKS

    -------------------------------

     

    demo3s.SIM consists of 15 elements, 15 jobs and 15 stages.

    Time representation is as follows: 60 units make 1 minute, 60 minutes make 1 hour, 8 hours make 1 day. Before simulation beforefunc will be executed. At request usertli will be executed.

     

    LISTING OF ELEMENTS

    ----------------------------------

     

    (1) Tároló is a Buffer with a capacity of 10

    entry list = Scheduled Arrivals

    path pos. = 500

    job number = 1

    Used by Job 1 (E1:J1) with a jobtime of 800.00 Normal dev. 100.00

    exit trig. = if lastprodout[1]<>curprod[1] then init[1,1]:=init[1,1]+1

    Done at stage 1 from which it is sent to stage 2

    Stage 1 has a stock of 0 products (1)

     

    (2) Puffer is a Buffer with a capacity of 10

    path pos. = 0

    job number = 2

    Used by Job 2 (E2:J1) with a jobtime of 0.00

    entry trig. = if init[1,1]>4 then init[1,1]:=4

    Done at stage 2 from which it is sent to stage 3

     

    (3) Furo-maro kozp. is a Machine with a capacity of 1

    job number = 3

    Used by Job 3 (E3:J1) with a jobtime of TLI

    Done at stage 3 from which it is sent to stage 4

     

    (4) Puffer is a Buffer with a capacity of 10

    queue disc. = Max product

    job number = 4

    Used by Job 4 (E4:J1) with a jobtime of 0.00

    Done at stage 4 from which it is sent to stage 5

     

    (5) Hokezelo kemenc is a Machine with a capacity of 10

    job number = 5

    Used by Job 5 (E5:J1) with a jobtime of TLI

    batch = schedquant[1,init[1,1]]

    batch out = schedquant[1,init[1,1]]

    Done at stage 5 from which it is sent to stage 7

     

     

    (6) Puffer is a Buffer with a capacity of 10

    path pos. = 0

    job number = 6

    Used by Job 7 (E8:J2) with a jobtime of 0.00

    Done at stage 7 from which it is sent to stage 6

     

    (7) Mérőállomás is a Aid with a capacity of 1

    path pos. = 0

    job number = 7

    Used by Job 6 (E7:J1) with a jobtime of 400.00 Normal dev. 100.00

    entry trig. = att1[C]:=random[99]

    Done at stage 6 from which it is sent to: select 1 from (if att1[7,1]<20 then 14 else 15)

     

    (8) Puffer is a Buffer with a capacity of 20

    path pos. = 500

    job number = 8

    Used by Job 13 (E13:J2) with a jobtime of 0.00

    entry trig. = init[1,2]:=init[1,2]+1

    Done at stage 13 from which it is sent to stage 0

     

    PRODUCT PARAMETERS

    -----------------------------------

     

    All Product parameters default (size=1 and weight=1).

     

    STOCK LISTING

    ------------------------

     

    (1) (R1:1) --> 0 products (code=1)

     

    TLI SYNTAX LISTING

    -------------------------------

     

    (1) Trig. on Exit = if lastprodout[1]<>curprod[1] then init[1,1]:=init[1,1]+1

    (2) Trig. on Entry = if init[1,1]>4 then init[1,1]:=4

    (3) Jobtime = ctime[product[E,1],1]

    (5) Jobtime = ctime[product[E,1],2]

    (5) Batch in = schedquant[1,init[1,1]]

    (5) Batch out = schedquant[1,init[1,1]]

    (7) Trig. on Entry = att1[C]:=random[99]

    (8) Trig. on Entry = init[1,2]:=init[1,2]+1

    (7) Send to = select 1 from (if att1[7,1]<20 then 14 else 15)

    EXECUTE FUNCTION BEFORE SIMULATION: beforefunc

    EXECUTE FU-NCTION AT REQUEST: usertli

     

    DATABASE NAMES:

    ____________________

     

    Database 1 = ctime

    Database 2 = init

     

     

    TLI FUNCTIONS

    -----------------------

     

    function beforefunc

     

    init[1,1]:=1

    init[1,2]:=0

     

    End of document

     

     

  • A gyártócella modell (demo4s) dokumentációja táblázatos formátumban
  • demo4s Taylor II Model Documentation Date: 13-03-1997 Time: 12:26

    =========================================================================

     

    GENERAL REMARKS

    ------------------------------

     

    demo4s.SIM consists of 10 elements, 16 jobs and 17 stages.

    Time representation is as follows: 60 units make 1 minute,

    60 minutes make 1 hour, 8 hours make 1 day.

    Before simulation beforefunc will be executed.

    At request usertli will be executed.

     

    TABLE 1: Element parameters

    --------------------------------------

     

    ELEM NAME T CAP ENTRY EXIT QUEU REP

    NR COND LIST COND DISC AID

    _____ _____________ _ ____ ___________ ____ ________ ___

    1 Robot M 2 Fifo

    2 NC_eszterga_1 M 1 Fifo*

    3 NC_eszterga_2 M 1 Fifo

    4 Mérőállomás M 1 Fifo

    5 Conv_5 C 10 Location

    6 Conv_6 C 3 Location

    7 Conv_7 C 3 * Location

    8 Conv_8 C 8 Location

    9 Buff_9 B 10 arrv file 1 Fifo

    10 Buff_10 B 10 Fifo

     

     

    TABLE 2: Element parameters (various) --> CONVEYOR/WAREHOUSE/RESERVOIR

    --------------------------------------------------------------------------------------------------------------

     

    ELEM NAME T CAP PROD ACM SPEED LNGTH

    NR SPAC

    _____ ______ _ ____ ____ ___ _____ _____

    5 Conv_5 C 10 Y 1.00 10.00

    6 Conv_6 C 3 Y 1.00 10.00

    7 Conv_7 C 3 Y 1.00 10.00

    8 Conv_8 C 8 Y 1.00 8.00

    TABLE 3: Job parameters

    ---------------------------------

     

    JOB NAME ELEM JOBTIME TRIG TRIG

    NR par1 dis par2 ENTR EXIT

    _____ ______ _____ _____ ___ ____ ____ ____

    1 E1:J1 1 TLI *

    2 E2:J1 2 TLI

    3 E3:J1 3 TLI

    4 E4:J1 4 TLI

    5 E5:J1 5 *

    6 E6:J1 6

    7 E7:J1 7

    8 E8:J1 8

    9 E9:J1 9 *

    10 E10:J1 10

    11 E1:J2 1 TLI

    12 E2:J3 2 TLI

    13 E3:J2 3 TLI

    14 E4:J2 4 TLI

    21 E1:J12 1 TLI

    31 E1:J19 1 TLI *

     

     

    ROUTE LISTING

    -----------------------

     

    ROUTE STAGE NAME USES SEND

    NR NR JOBNR TO

    _____ ______ _____ _____ _____________________________________________

    1 1 R1:1 1 select 1 from routing[curprod[1],1]

    1 2 R1:2 2 select 1 from routing[curprod[2],2]

    1 3 R1:3 3 15

    1 4 R1:4 4 select 1 from routing[curprod[4],4]

    1 5 R1:5 5 6

    1 6 R1:6 6 8

    1 7 R1:7 7 1

    1 8 R1:8 8 select 1 from (if att1[8,1]>0 then 10 else 7

    1 9 R1:9 9 8

    1 10 R1:10 10 0

    1 11 R1:11 11 select 1 from routing[curprod[1],11]

    1 12 R1:14 12 select 1 from routing[curprod[2],12]

    1 13 R1:14 13 select 1 from routing[curprod[3],13]

    1 14 R1:15 14 select 1 from routing[curprod[4],14]

    1 15 R1:17 3 select 1 from routing[curprod[3],3]

    1 21 R1:21 21 select 1 from routing[curprod[1],21]

    1 31 R1:31 31 select 1 from routing[curprod[1],31]

     

    PRODUCT PARAMETERS

    -----------------------------------

     

    All Product parameters default (size=1 and weight=1).

     

     

    STOCK LISTING

    ----------------------

     

    (1) (R1:1) --> 0 products (code=0)

     

    TLI SYNTAX LISTING

    -------------------------------

     

    (7) Exit condition = prodin[1,1]<=1

    (2) Repair aid = select 1 from 3

    (1) Trig. on Entry = prodin[1,1]:=prodin[1,1]+1

    (1) Jobtime = ctime[curprod[1],1]*prodin[1,3]

    (2) Jobtime = ctime[curprod[2],2]

    (3) Jobtime = ctime[curprod[3],3]

    (4) Jobtime = prodin[1,2]

    (5) Trig. on Exit = att1[C]:=1

    (9) Trig. on Entry = if time<100 then prodin[1,2]:=1500

    (11) Jobtime = ctime[curprod[1],11]*prodin[1,3]

    (12) Jobtime = ctime[curprod[2],12]

    (13) Jobtime = ctime[curprod[3],13]

    (14) Jobtime = ctime[curprod[4],14]

    (21) Jobtime = ctime[curprod[1],21]*prodin[1,3]

    (31) Trigger on Exit = prodin[1,1]:=prodin[1,1]-1

    (31) Jobtime = ctime[curprod[1],31]*prodin[1,3]

    (1) Send to = select 1 from routing[curprod[1],1]

    (2) Send to = select 1 from routing[curprod[2],2]

    (4) Send to = select 1 from routing[curprod[4],4]

    (8) Send to = select 1 from (if att1[8,1]>0 then 10 else 7)

    (11) Send to = select 1 from routing[curprod[1],11]

    (12) Send to = select 1 from routing[curprod[2],12]

    (13) Send to = select 1 from routing[curprod[3],13]

    (14) Send to = select 1 from routing[curprod[4],14]

    (15) Send to = select 1 from routing[curprod[3],3]

    (21) Send to = select 1 from routing[curprod[1],21]

    (31) Send to = select 1 from routing[curprod[1],31]

    EXECUTE FUNCTION BEFORE SIMULATION: beforefunc

    EXECUTE FUNCTION AT REQUEST: usertli

     

    DATABASE NAMES:

    __________________

     

    Database 2 = ctime

    Database 3 = routing

    Database 4 = prodin

    Database 5 = demo

     

    TLI FUNCTIONS

    -----------------------

     

    function beforefunc

     

    prodin[1,1]:=0

     

    End of document

    415.gif (65536 bytes)

    T   H   E          E     N     D