Symulacja w programie Taylor II

Rate this post

1. Wstępne założenia

Celem symulacji jest prześledzenie procesu produkcji i uzyskanie optymalnego rozwiązania. Wydział lakierni jest symulowany jako zestawienie operacji wykonywanych na odpowiednich maszynach. Sam wydział składa się z trzynastu operacji przedstawionych jako maszyny . W przypadku gdy w skład operacji wchodzi kilka czynności odbywają się one na jednej maszynie, przykładem takiej sytuacji może być transport, gdzie operacja transportu składająca się z trzech czynności, odbywa się na jednej maszynie. Oprócz maszyn w skład wydziału wchodzą jeszcze bufory, z których pobierane są elementy do produkcji i aidy, z których są pobierane elementy wspomagające produkcję, czyli ludzie potrzebni podczas procesu produkcyjnego. Symulacja odbywa się w czasie ośmiu godzin. W czasie całej symulacji średnia ilości polakierowanych nadwozi na jedną godzinę, powinna się kształtować w granicach dwudziestu czterech. Czas jednej operacji równy jest dwie minuty. Powodem tego, że liczba polakierowanych nadwozi nie jest równa trzydziestu sztuką na godzinę, a kształtuje się na poziomie dwudziestu czterech, jest to, że do procesu produkcji została wprowadzona awaryjność maszyn. Cała symulacja odbywa się pomiędzy dwoma dużymi buforami, z których pierwszy symuluje napływ elementów z wydziału trzeciego, wydziału spawalni, a drugi wyjście elementów do wydziału ósmego, wydział montażu.

2 Opis wydziału lakierni przedstawionego w programie Taylor.

Poniższy rysunek przedstawia wydział lakierni zasymulowany w programie Taylor II.

Wydział lakierni

Wydział lakierni został zasymulowany w programie Taylor II przy użyciu następujących elementów :

a)  dwóch buforów głównych umieszczonych na wejściu i wyjściu wydziału, symulujących przejścia między wydziałami. Bufory są oznaczone numerami :

*        41- wejście na wydział lakierni

*        42- wyjście z wydziału lakierni

b)  trzech klastrów, jednego będący komórką produkcyjną obejmującego całą linię lakierniczą i dwóch obejmujących stanowisko malowania nadwozia i lakierowania nadwozia, o numerach :

*        0:1    – klaster obejmujący linie malowania nadwozia (komórka produkcyjna)

*        0:1:1 – klaster obejmujący stanowisko malowania nadwozia

*        0:1:2 – klaster obejmujący stanowisko lakierowania nadwozia

c)  dwóch buforów umieszczonych na wejściu i wyjściu linii malowania nadwozia, o numerach :

*        1 – wejście na linie malowania nadwozia

*        2 – wyjście z linii malowania nadwozia

d)  trzynastu maszyn, na których odbywają się operacje :

*        41 – mycie nadwozia

*        42 – suszenie nadwozia

*        43 – malowanie farbą podkładową

*        44 – pierwsza faza suszenia.

*        45 – druga faza suszenia

*        46 – trzecia faza suszenia

*        47 – lakierowanie nadwozia

*        48 – pierwsza faza suszenia

*        49 – druga faza suszenia

*        410 – trzecia faza suszenia

*        411 – czwarta faza suszenia

*        412 – piąta faza suszenia

*        413 – transport polakierowanego nadwozia

e)  pięciu buforów dostarczających farbę i lakiery

*        998 – bufor dostarczający farbę podkładową

*        989 – bufor dostarczający lakier biały

*        990 – bufor dostarczający lakier czerwony

*        991 – bufor dostarczający lakier zielony

*        992 – bufor dostarczający lakier pomarańczowy

f)   jednej ikony dynamicznej przedstawiającej czynność odbywającą się na maszynie 413          ( transporcie )

g)  pięciu elementów typu Aid wykorzystywanych do operacji malowania, lakierowania i transportu.

2.   Opis symulacji wydziału lakierni przedstawionej w programie Taylor II

Symulacja w programie Taylor II rozpoczyna się od wyjścia produktu z bufora numer 41. Przy wyjściu każdemu produktowi zostają przypisane atrybuty takie jak kolor, tapicerka, zderzaki itp. . Nadanie odpowiednich atrybutów wychodzącym produktom odbywa się przez wprowadzenie tych atrybutów jako ustawienia wyjściowe produktu. Odbywa się to w oknie dialogowym elementu w parametrach pracy ( Job parameters ), przy użyciu polecenia odpowiedzialnego za ustawienia elementu na wyjściu ( Trigger on exit )

Trigger on exit : #exec opcje.tli

Zawartość pliku „opcje.tli” przedstawia się następująco.

if produced[0:j1]<31 then projekt[C]:=projekty[produced[J]+1,1]

if produced[0:j1]<31 then wersja[C]:=projekty[produced[J]+1,2]

if produced[0:j1]<31 then kolor[C]:=projekty[produced[J]+1,3]

if produced[0:j1]<31 then tapicerka[C]:=projekty[produced[J]+1,4]

if produced[0:j1]<31 then fotele[C]:=projekty[produced[J]+1,5]

if produced[0:j1]<31 then zderzaki[C]:=projekty[produced[J]+1,6]

if produced[0:j1]<31 then atrapa[C]:=projekty[produced[J]+1,7]

if produced[0:j1]>30 then projekt[C]:=3

if produced[0:j1]>30 then wersja[C]:=produced[0:j1]-30

if produced[0:j1]>30 then kolor[C]:=random[3]+1

if produced[0:j1]>30 then tapicerka[C]:=random[1]+1

if produced[0:j1]>30 then fotele[C]:=random[1]+1

if produced[0:j1]>30 then zderzaki[C]:=random[1]+1

if produced[0:j1]>30 then atrapa[C]:=random[2]+1

Jak widać z powyższego przedstawienia zawartości pliku „ opcje.tli”, produktom są nadawane takie atrybuty jak projekt, wersja, kolor, tapicerka, fotele, zderzaki i atrapy. Wszystkie te atrybuty są niezbędne na wydziale montażu samochodów, natomiast na wydziale lakierni interesuje nas atrybut jakim jest kolor. Atrybut ten w dalszym etapie będzie odpowiedzialny za kolor lakieru jaki będzie pobrany do lakierowania nadwozia.

Z procedury doboru koloru przedstawionej w pliku wynika, że dla pierwszych trzydziestu jeden elementów kolor jest dobierany według ściśle określonego projektu, to znaczy, jeżeli element na numer mniejszy od trzydziestu jeden to kolor jest z czytywany z tabeli „projekty”, w przeciwnym wypadku kolor jest losowany poleceniem „random”, jako jeden z czterech.

Tabela „projekty”, zapisana w programie Taylor, jest tabelą zawierającą informacje podane przez użytkownika co do koloru lakieru, rodzaju zderzaka itp., dla pierwszych trzydziestu jeden produktów.    
Tabela w programie Taylor

Jak widać z powyższej prezentacji tabela ta zawiera trzydzieści jeden wierszy ( Rows : 31 ) i siedem kolumn ( Columns : 7 ) . Liczba kolumn jest zgodna z liczbą cech ( atrybutów ) nadawanych elementowi, a liczba wierszy określa liczbę elementów wyprodukowanych według podanych cech. Cała tabela ma następującą postać.

Projekt

Wersja

Kolor

Tapicerka

Fotele

Zderzak

Atrapa

1.00

1.00

1.00

1.00

1.00

1.00

1.00

1.00

2.00

2.00

1.00

1.00

1.00

1.00

1.00

3.00

3.00

1.00

1.00

1.00

1.00

1.00

4.00

4.00

1.00

1.00

1.00

1.00

1.00

5.00

1.00

2.00

1.00

1.00

1.00

1.00

6.00

2.00

2.00

1.00

1.00

1.00

1.00

7.00

3.00

2.00

1.00

1.00

1.00

1.00

8.00

4.00

2.00

1.00

1.00

1.00

1.00

9.00

1.00

1.00

1.00

2.00

2.00

1.00

10.00

2.00

1.00

1.00

2.00

2.00

1.00

11.00

3.00

1.00

1.00

2.00

2.00

1.00

12.00

4.00

1.00

1.00

2.00

2.00

1.00

13.00

1.00

2.00

1.00

2.00

2.00

1.00

14.00

2.00

2.00

1.00

2.00

2.00

1.00

15.00

3.00

2.00

1.00

2.00

2.00

1.00

16.00

4.00

2.00

1.00

2.00

2.00

1.00

17.00

1.00

1.00

2.00

2.00

3.00

1.00

18.00

2.00

1.00

2.00

2.00

3.00

1.00

19.00

3.00

1.00

2.00

2.00

3.00

1.00

20.00

4.00

1.00

2.00

2.00

3.00

1.00

21.00

1.00

2.00

2.00

2.00

3.00

1.00

22.00

2.00

2.00

2.00

2.00

3.00

1.00

23.00

3.00

2.00

2.00

2.00

3.00

1.00

24.00

4.00

2.00

2.00

2.00

3.00

2.00

1.00

1.00

1.00

1.00

1.00

1.00

2.00

2.00

2.00

1.00

1.00

1.00

1.00

2.00

3.00

1.00

2.00

1.00

1.00

1.00

2.00

4.00

4.00

1.00

1.00

2.00

2.00

2.00

5.00

3.00

2.00

1.00

2.00

2.00

2.00

6.00

2.00

1.00

2.00

2.00

3.00

2.00

7.00

1.00

2.00

2.00

2.00

3.00

Tabela przedstawiająca cechy elementów produkowanych w projekcie pierwszym i drugim.

Jak widać z powyższej tabeli, kolor ( trzecia kolumna ) będzie się zmieniał, dla pierwszych dwudziestu czterech elementów, regularnie od białego poprzez czerwony i zielony do pomarańczowego, dla pozostałych siedmiu według określonej kolejności przedstawionej w tabeli.

Po nadaniu odpowiednich atrybutów produkt zostaje przesłany do bufora znajdującego się przed linią lakierowania nadwozia. Stąd produkt, którym jest nadwozie, zostaje wysłany na pierwszą z maszyn, na której odbywa się mycie nadwozia.

Każda z maszyn, w długim procesie technologicznym lakierowania nadwozia, jest określona odpowiednimi parametrami, takimi jak parametry elementu, parametry pracy i parametry stanowiska. Parametry te zostały wprowadzone przy pomocy okna dialogowego elementu.
 Okno dialogowe elementu

–       Parametry elementu.

Powyższe okno dialogowe przedstawia parametry pierwszej maszyny, na której odbywa się mycie samochodu .Pierwszymi parametrami zdefiniowanymi są parametry elementu ( Element parameters ) . Są to takie parametry jak :

–       pojemność ( Capacity )

–       warunki wejściowe ( Entry condition )

–       warunki wyjściowe ( Exit condition )

–       produkt do wysłania ( Product to send )

–       średni czas pomiędzy awariami ( Mtbf )

–       średni czas na naprawę ( Mttr )

–       pomoc przy naprawie ( Repair aid )

Z powyższego okna można wyczytać, że zostały wprowadzone następujące parametry elementu :

  1. Pojemność – pojemność jest równa jeden, czyli na maszynie numer 41 może przebywać tylko jeden element.
  2. Warunki wejścia –  warunkiem wejścia jest aby aktualna liczba wyrobów     ( elementów ) dostępnych na maszynie była równa zero, czyli aby maszyna była pusta. Jest to uzyskane przez wpisanie polecenia „elqueue[E]=0” . Warunek ten został podany dla wszystkich maszyn linii lakierowania nadwozia.
  3. Warunki wyjścia – warunkiem wyjścia jest aby zmienna 421 była równa 1   ( polecenie var[421]=1 ) . Zmienna 421 oznacza stan w jakim się znajduje maszyny, w tym przypadku są brane pod uwagę dwa stany, pierwszy to stan czynnej maszyny, a drugi to stan uszkodzonej maszyny . Warunkiem aby zmienna 421 była równa jeden jest to aby wszystkie maszyny były sprawne. Wynika z tego, że aby element mógł opuścić maszynę wszystkie maszyny muszą być sprawne. Jest to zastosowane dla wszystkich maszyn i skutkiem tego jest, że w przypadku uszkodzenia jakiejkolwiek maszyny cała linia lakierowania nadwozia zatrzymuje się . Sprawdzanie stanu maszyn pod względem sprawności odbywa się poprzez procedurę przedstawioną poniżej .

var[421]:=1

if status[0:1:e41]=4 then var[421]:=0

if status[0:1:e42]=4 then var[421]:=0

if status[0:1:1:e43]=4 then var[421]:=0

if status[0:1:e44]=4 then var[421]:=0

if status[0:1:e45]=4 then var[421]:=0

if status[0:1:e46]=4 then var[421]:=0

if status[0:1:1:e47]=4 then var[421]:=0

if status[0:1:e48]=4 then var[421]:=0

if status[0:1:e49]=4 then var[421]:=0

if status[0:1:e410]=4 then var[421]:=0

if status[0:1:e411]=4 then var[421]:=0

if status[0:1:e412]=4 then var[421]:=0

Jak można zauważyć sprawdzanie rozpoczynamy przez założenie, że zmienna var[421] jest równa jeden . W późniejszym etapie sprawdzamy po kolei każdą z maszyn, czy jej stan ( sprawdzany poleceniem „status”, które zwraca bieżący stan elementu )  nie jest równy cztery, czyli czy maszyna nie jest uszkodzona . Jeśli maszyna jest uszkodzona to zmienna przyjmuje wartość zero  i cała linia zatrzymuje się. Cała powyższa procedura zawarta jest w pliku „var421.tli” i uruchamiana jest co pięć sekund poprzez okno definiowania zmiennych.

Procedura uruchamiania pliku „tli” jest przedstawiona jako trzecia pozycja.

  1. Produkt do wysłania – wartość, która jest liczbą lub wyrażeniem TLI, decyduje, który produkt z kolejki do danego elementu ma być odesłany do następnego etapu procesu . Wartość przyjęta to jeden, powoduje to wysłanie po kolei każdego elementu wchodzącego .
  2. Średni czas pomiędzy awariami – jest to czas po jakim maszyna ulegnie uszkodzeniu po ostatniej awarii . Czas ten w moim przypadku jest generowany losowo . Procedura wprowadzona ma następującą postać :

random[var[412]]*900 + var[411]

Podane w wyrażeniu zmienne, var[412] i var[411], są odpowiedzialne za czas pomiędzy awariami . Pierwsza zmienna, na podstawie której jest losowany czas pomiędzy awariami, przyjmuje wartość 120 . Wartość ta jest dobrana doświadczalnie, w taki sposób aby liczba wyprodukowanych elementów była 20% mniejsza, czyli przy założeniu, że bez awarii wyprodukujemy trzydziestu  polakierowanych nadwozi, wprowadzając awarie z tak dobraną wartością zmiennej, spowoduje wyprodukowanie dwudziestu czterech elementów. Można to udowodnić przedstawiając wyrażeniem :

120*15min = 1800min = 30godz

30godz / 12 stanowisk = 2,5godz

0,5godz / 2,5godz = 20%

gdzie :

15min – czas taktu

12 stanowisk – liczba stanowisk na linii produkcyjnej

0,5godz – średni czas awarii

Wylosowana liczba poleceniem „random” z przedziału od 0 do 120 jest mnożona jest przez 900 czyli przez 15 minut i uzyskany czas jest czasem po którym maszyna ulegnie uszkodzeniu po naprawie. Czas ten w przypadku wylosowania zera jest równy zero minut czyli maszyna może się od razu po naprawie uszkodzić . Aby czas pomiędzy naprawą a uszkodzeniem był różny od zera jest wprowadzona zmienna „var[411]” . Zmienna ta może przyjmować dowolną wartość, a wartość ta określa czas przez który, po naprawie, maszyna nie może ulec uszkodzeniu. Na wydziale lakierni zmienna ta dla wszystkich dwunastu maszyn, dla których zostały wprowadzone awarie, jest równa zero, czyli każda maszyna od razu po naprawie może ulec awarii.

  1. Średni czas na naprawę – jest to czas potrzebny na naprawę maszyny. Został określony jako wyrażenie :

random[2]*900+900

Jak widać czas ten jest dobierany losowo . Losowane są liczby 0,1 lub 2 . Czas usunięcia awarii, w zależności od wyniku losowania może być równy 15 minut, 30 minut lub 45 minut.

  1. Pomoc przy naprawie – określa czy do naprawy maszyny wymagana jest pomoc drugiego elementu. Parametr ten jest niewykorzystywany w moim przypadku.

Oprócz podstawowych parametrów elementu są również parametry dodatkowe ( Extra element parameters), takie jak nazwa, numer, reguły priorytetu, strategia wyjściowa itp., jednak w moim przypadku są one w większości niewykorzystywane. 
 Parametry dodatkowe maszyny

–     Parametry pracy

Parametrami, bez których ustalenia czynność na danej maszynie nie mogłaby się odbyć są parametry pracy ( Parameters job ). Są to takie parametry jak :

–       Czas ( Time )

–       ustawienie na wejściu ( Trigger on exit )

–       partia ( Batch )

–       partia wyjściowa ( Output batch )

–       pomocnik ( Aid )

Do symulacji wydziału lakierni zostały wprowadzone następujące parametry

  1. Czas – parametr ten jest odpowiedzialny za długość wykonywania czynności na maszynie. Na wydziale lakierni dla wszystkich maszyn jest on taki sam, równy dwie minuty, ponieważ linia produkcyjna jest taśmowa i wszystkie elementy znajdujące się na linii przesuwają się równocześnie.
  2. Ustawienia na wejściu – w momencie wejścia elementu na maszynę zostaje wykonane polecenie TLI
  3. Ustawienia na wyjściu – w momencie wyjścia elementu z maszyny zostaje wykonane polecenie TLI
  4. Partia – jest to liczba produktów, na których odbywa się czynność. Na wydziale lakierni partia na jakiej odbywają się wszystkie operacje jest równa jeden, procesowi lakierowania są poddawane pojedynczo kolejne nadwozia.
  5. Partia wyjściowa – jest to liczba produktów, które są wysyłane kiedy czynność na maszynie zakończy się . Na linii lakierowania nadwozia partia ta jest równa jeden, czyli nadwozia pomiędzy maszynami przesuwają się pojedynczo.
  6. Pomocnik – parametr  ten jest podawany w przypadku kiedy do wykonania operacji ( czynności ) jest potrzebny pomocnik . Jest on określony jako numer lub numery Aid’ów wykorzystywanych do operacji.

Podobnie jak w przypadku parametrów elementu, parametry pracy również posiadają dodatkowe parametry takie jak priorytet, wybraki, losowe generowanie czasu i partii, ale  i w tym przypadku są one  większości  niewykorzystywane .

Dodatkowe parametry pracy

–     Parametry etapu procesu

Parametrami, które są odpowiedzialne za przesyłanie i odbiór produktu są parametry etapu procesu ( Stage parameters ). Są to parametry takie jak :

–       Wysłać do ( Send to )

– Odebrać

Oraz parametry dodatkowe :

–       Zapas ( Stock amount )

–       Kod produktu ( Product code )

–       Nazwa etapu procesu (Stage name )

–       Numer etapu procesu ( Stage number )

Dodatkowe parametry etapu procesu

Parametry dodatkowe są przede wszystkim wykorzystywane w pierwszym elemencie symulacji jakim jest bufor ( magazyn ) przed linią lakierowania nadwozia i w buforach znajdujących się przy stanowiskach malowania i lakierowania nadwozia. Są tu wprowadzone liczby produktów, jako zapas (Stock amount ) wykorzystywany w ośmiogodzinnej symulacji i  kody tych produktów. Parametry etapu procesu podstawowe „wysłanie do”, „odbiór z”, są wprowadzane dla każdego elementu       ( maszyny ) . W przypadku maszyny numer 41 ( mycia nadwozia ), jest podany tylko parametr „wysłać do”, gdzie został wprowadzony numer następnej maszyny, 42 ( suszenie nadwozia ), co oznacza, że po wykonaniu operacji na produkcie, produkt zostanie przesłany do tej maszyny.

Po wykonaniu operacji mycia, zgodnie z wprowadzonymi parametrami, produkt, jakim jest nadwozie, zostaje przesłane do następnej maszyny, na której zostaje poddany procesowi suszenia . Maszyna ta, w symulacji pod programem Taylor II, nie różni się od wcześniejszej maszyny. Większość parametrów jest taka sama. Po wykonaniu tej operacji, produkt zostaje przesłany do pierwszego klastra znajdującego się na linii lakierowania nadwozia . Polecenie wysłania produktu z maszyny do klastru, wprowadzone jako parametr etapu procesu „ wyślij do”, ma następującą postać :  0:1:1:s43 .Oznacza to, że produkt został wysłany do maszyny numer 43 znajdującej się w klastrze zawartym wewnątrz jeszcze jednego klastru. Ilość liczb przed numerem maszyny oznacza poziom w klastru, a same liczby numer klastru . W tym przypadku maszyna znajduje się wewnątrz klastru obejmującego stanowisko malowania nadwozia, o numerze jeden, który znajduje się w klastrze linii lakierowania nadwozia, również o numerze jeden. Maszyna z której został wysłany produkt ( maszyna 42 ) i klaster obejmujący stanowisko malowania nadwozia, znajduje się w klastrze linii lakierowania nadwozia, co powoduje, że polecenie przesłania produktu można uprościć do postaci „1:s43” .

Klaster malowania nadwozia farbą podkładową oprócz maszyny obejmuje również inne elementy niezbędne do tej operacji . Są to dwa elementy typu „Aid”, które służą jako pomoc w operacji malowania i jeden bufor z którego jest pobierana    
farba podkładowa .

Okno dialogowe dla maszyny malowania nadwozia.

Elementy te, aid i bufor, zostały wykorzystane w parametrach pracy i parametrach etapu procesu. Element typu aid, wykorzystany w parametrach pracy, jest wprowadzony jako parametr „pomocnik” przez polecenie „select 2 from 1,2”. Polecenie to oznacza, że do wykonania operacji są wykorzystywani dwaj pomocnicy z elementów typu aid, o numerach 1,2. Z elementu typu bufor, wykorzystywanym w parametrach etapu procesu, jest pobierany produkt, jakim jest farba podkładowa, przez polecenie wprowadzone do parametru „pobierz z”, w postaci „ select 1 from 998”, co powoduje pobranie, w trakcie wykonywania operacji, jednego produktu z elementu o numerze 998.

Sama symulacja, którą widzi użytkownik ma następujący przebieg. Produkt wpływa do maszyny na której odbywa się malowanie . Równocześnie zostają pobrani, z elementów typu aid, dwaj pomocnicy i z bufora wpływa farba podkładowa . Operacja z użyciem wszystkich tych elementów trwa przez dwie minuty i po tym czasie pomocnicy odchodzą od maszyny malującej nadwozie, a z maszyny wychodzi pomalowany produkt. Taki produkt zostaje przesłany do pierwszego etapu suszenia. Polecenie, które zostało wprowadzone jako parametr „wyślij do”, w postaci „select 1 from 0:1:s44”, oznacza, że jeden produkt zostaje wysłany do maszyny numer 44, znajdującej się w klastrze linii lakierowania nadwozia.

Po wejściu na maszynę, na której odbywa się pierwszy etap suszenia i pobycie tam przez dwie minuty, nadwozie trafia do maszyny, na której odbywa się drugi proces suszenia i przebywa tam przez kolejne trzy minuty. Proces suszenia po malowaniu kończy się na trzecim etapie, który odbywa się na maszynie numer 46. Z tej maszyny nadwozie trafia do klastru na którym jest wykonywana najważniejsza operacja na całej linii produkcyjnej, operacja lakierowania nadwozia.

Klaster ten składa się z jednej maszyny, z dwóch aid’ów  i z czterech buforów, w których znajdują się cztery kolory lakierów. Symulacja przebiega w sposób bardzo podobny do klastru malowania nadwozia, a różnica polega na tym, że kolor jest dobierany jako jeden z czterech. Dobór koloru dla kolejnych nadwozi nie jest przypadkowy, ponieważ każde nadwozie ma przyporządkowane odpowiednie atrybuty . Jednym z tych atrybutów jest  kolor. Atrybut ten, po wejściu produktu na maszynę jest sprawdzany i zgodnie z nim jest pobierany lakier o kolorze na który wskazuje atrybut. Jest to uzyskane przez wprowadzenie odpowiedniej procedury, jako parametr etapu procesu ( Receive from ). Procedura ta ma następującą postać :

select 1 from (if kolor[0:1:e46,1]=1 then 989 else (if kolor[0:1:e46,1]=2 then 990 else (if kolor[0:1:e46,1]=3 then 991 else 992)))

Działanie powyższej procedury polega na kolejnym sprawdzaniu numeru atrybutu koloru. Wynikiem czego jest pobranie lakieru z tego bufora do którego przypisany numer jest zgodny z numerem atrybutu koloru. Na przykład wchodzący produkt  ( nadwozie ) ma przypisany atrybut koloru równy cztery, po wejściu na maszynę numer 46 ( lakierowania nadwozia ) jest on z czytywany i sprawdzany czy jest równy jeden . Jeżeli nie to następnie odbywa się porównywanie do dwójki i później do trójki . Nasz atrybut nie jest równy żadnej z tych liczb, więc lakier jest pobierany z bufora numer 992 gdzie znajduje się lakier pomarańczowy . W przypadku gdyby był równy którejś z kolejnych liczb sprawdzanie zostaje przerwane na tej liczbie i lakier jest pobierany z tego bufora, który jest przyporządkowany tej liczbie.

Po wykonaniu operacji lakierowania nasze nadwozie zostaje przesłane do następnej maszyny, znajdującej się poza klastrem obejmującym stanowisko lakierowania, na którym rozpoczyna się pierwsza faza z pięciofazowego proces suszenia nadwozia. Każda faza procesu suszenia odbywa się na innej maszynie, trwa oczywiście taki sam okres czasu i jest ostatnim procesem na linii lakierowania nadwozia . Po wykonaniu piątej fazy suszenia nadwozie zostaje wysłane do bufora, który jest ostatnim elementem na linii lakierowania nadwozia. Z tego bufora produkt trafia do maszyny 413 odpowiedzialnej za transport.

Transport, odbywający się na jednej maszynie, jest procesem trzyetapowym .Pierwszy etap to załadunek, odbywa się on przy wykorzystaniu pomocnika, który jest wykorzystywany również do dwóch pozostałych etapów . Etap drugi to sam transport a trzeci to wyładunek przed wydziałem montażu samochodu. Cały proces transportu trwa dwie minuty, ponieważ jest to konieczne do zachowania ciągłości procesu. Na wykonanie wszystkich trzech czynności na jednej maszynie pozwalają nam funkcje programu Taylor II takie jak „ Multiple job” i „ Mulltiple stages”, definiowane jako model .

Okno dialogowe modelu

Po zdefiniowaniu tych funkcji można wprowadzić na maszynę kilka czynności. Wykonuje się to w oknie dialogowym elementu poprzez przycisk „ Ins” . W ten sposób, na maszynę numer 413, zostały wprowadzone trzy czynności . Każda z czynności ma osobne parametry pracy i parametry etapu procesu . Czynności te zostają wykonywane kolejno. Aby można było zaobserwować która czynność w danym momencie jest wykorzystywana, przy maszynie został umieszczony element jakim jest ikona dynamiczna ( Dynamic Icons ) .

Ikona dynamiczna

Element ten wykorzystujemy do wyświetlania informacji o numerze czynności, czyli typ ikony jest wybrany jako „Text:value”, co pozwala na wyświetlenie tekstu opisującego i zmiennej. Przez polecenie „curjob[413]” z czytujemy numer operacji wykonywanej na maszynie 413. Wartość 1000, wprowadzona w pole „Highest value”, oznacza, że zmienna może przyjmować największą wartość 1000. Wartość najmniejszą wprowadza się w pole „Lowest value”, w naszym przypadku wynosi ona zero. W pole o nazwie „Icon text” jest wprowadzony opis wyświetlanej zmiennej. Po tak wprowadzonych danych na ekranie podczas symulacji obserwujemy niebieską ikonę z wyświetlanym numerem operacji, która jest wykonywana przez maszynę odpowiedzialną za transport.

Po wykonaniu ostatniej czynności transportu, czyli wyładunku, nasz produkt trafia na końcowy bufor obrazujący wydział montażu samochodów. Symulacja kończy się po ośmiu godzinach . Przez ten czas, przy średniej produkcji dwudziestu czterech nadwozi na godzinę, zostaje polakierowane około 192 nadwozi ,a liczba ta jest zależna od liczby awarii na linii produkcyjnej.

3.   Wyniki symulacji.

Wyniki z przeprowadzonej symulacji można przedstawić w dwóch formach : raportów i wykresów. Raporty są przedstawiane w postaci tabel, natomiast wykresy można otrzymywać w dowolnej formie.

  1. a.    Przedstawienie danych w programie Taylor II

Taylor II Model Documentation      Date: 06-09-1999  Time: 12:32

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

GENERAL REMARKS

—————

lakiersk.SIM consists of 27 elements, 29 jobs and 29 stages.

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

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

At request usertli will be executed.

TABLE 1: Element parameters

—————————

ELEM          NAME      T  CAP   ENTRY     ENTR EXIT

NR                               COND LIST COND COND

_____________ _________ _ ____ ___________ ____ ____

0:e3          Aid_4     A    1

0:e41         Wejście   B 1000 arrv fl rep

0:e42         Wyjście   B 1000

0:e413        Transport M    1

0:1:e1        Buff_2    B    1

0:1:e2        Buff_14   B    3

0:1:e41       Mycie     M    1               *    *

0:1:e42       Suszenie  M    1               *    *

0:1:e44       faza1     M    1               *    *

0:1:e45       faza2     M    1               *    *

0:1:e46       faza3     M    1               *    *

0:1:e48       faza1     M    1               *    *

0:1:e49       faza2     M    1               *    *

0:1:e410      faza3     M    1               *    *

0:1:e411      faza4     M    1               *    *

0:1:e412      faza5     M    1               *    *

0:1:1:e1      Aid_18    A    1

0:1:1:e2      Aid_19    A    1

0:1:1:e43     Malowanie M    1               *    *

0:1:1:e998    Podkład   B 1000

0:1:2:e1      Aid_24    A    1

0:1:2:e2      Aid_26    A    1

0:1:2:e47     Lakiernia M    2               *    *

0:1:2:e989    Biały     B 1000

0:1:2:e990    Czerwony  B 1000

0:1:2:e991    zielen    B 1000

0:1:2:e992    pomarancz B 1000

Gdzie :

–       ELEM NR – numer elementu

–       NAME – nazwa

–       T – typ elementu

–       CAP – pojemność

–       ENTRY COND – warunek wejścia

–       EXIT COND – warunek wyjścia

TABLE 2: Element parameters

—————————

ELEM          NAME      T  CAP  MTBF           MTTR

NR                              par1 dis par2  par1 dis par2

_____________ _________ _ ____ _____ ___ ____ _____ ___ ____

0:e3          Aid_4     A    1

0:e41         Wejście   B 1000

0:e42         Wyjście   B 1000

0:e413        Transport M    1

0:1:e1        Buff_2    B    1

0:1:e2        Buff_14   B    3

0:1:e41       Mycie     M    1       TLI            TLI

0:1:e42       Suszenie  M    1       TLI            TLI

0:1:e44       faza1     M    1       TLI            TLI

0:1:e45       faza2     M    1       TLI            TLI

0:1:e46       faza3     M    1       TLI            TLI

0:1:e48       faza1     M    1       TLI            TLI

0:1:e49       faza2     M    1       TLI            TLI

0:1:e410      faza3     M    1       TLI            TLI

0:1:e411      faza4     M    1       TLI            TLI

0:1:e412      faza5     M    1       TLI            TLI

0:1:1:e1      Aid_18    A    1

0:1:1:e2      Aid_19    A    1

0:1:1:e43     Malowanie M    1       TLI            TLI

0:1:1:e998    Podkład   B 1000

0:1:2:e1      Aid_24    A    1

0:1:2:e2      Aid_26    A    1

0:1:2:e47     Lakiernia M    2       TLI            TLI

0:1:2:e989    Biały     B 1000

0:1:2:e990    Czerwony  B 1000

0:1:2:e991    zielen    B 1000

0:1:2:e992    pomarancz B 1000

Gdzie :

–       ELEM NR – numer elementu

–       NAME – nazwa

–       T – typ elementu

–       CAP – pojemność

–       MTBF – awarie

–       MTTR – usuwanie awarii

TABLE 5: Job parameters

———————–

JOB           NAME   ELEM            JOBTIME       TRIG AID

NR                                   par1 dis par2 EXIT

_____________ ______ _____________ ______ ___ ____ ____ ___

0:j1          E1:J1  0:e41                           *

0:j2          E2:J2  0:e42

0:j3          E4:J2  0:e3

0:j413        E3:J2  0:e413       40.00                *

0:j414        E3:J2  0:e413  40.00                *

0:j415        E3:J3  0:e413  40.00                *

0:1:j1        E2:J1  0:1:e1

0:1:j2        E14:J3 0:1:e2

0:1:j41       E3:J1  0:1:e41        120.00

0:1:j42       E4:J1  0:1:e42       120.00

0:1:j44       E5:J2  0:1:e44       120.00

0:1:j45       E7:J3  0:1:e45       120.00

0:1:j46       E8:J3  0:1:e46       120.00

0:1:j48       E9:J3  0:1:e48       120.00

0:1:j49       E10:J3 0:1:e49       120.00

0:1:j410      E11:J3 0:1:e410       120.00

0:1:j411      E12:J3 0:1:e411      120.00

0:1:j412      E13:J3 0:1:e412      120.00

0:1:1:j1      E18:J3 0:1:1:e1

0:1:1:j2      E19:J3 0:1:1:e2

0:1:1:j431    E5:J1  0:1:1:e43        120.00                *

0:1:1:j998    E6:J1  0:1:1:e998

0:1:2:j1      E24:J1 0:1:2:e1

0:1:2:j2      E26:J1 0:1:2:e2

0:1:2:j471    E11:J1 0:1:2:e47    120.00                *

0:1:2:j989    E17:J1 0:1:2:e989

0:1:2:j990    E18:J1 0:1:2:e990

0:1:2:j991    E19:J1 0:1:2:e991

0:1:2:j992    E20:J1 0:1:2:e992

Gdzie :

–       JOB NR – numer czynności

–       NAME – nazwa

–       ELEM – element

–       JOBTIME – czas wykonania czynności

–       TRIG EXIT – wykonanie funkcji TLI w momencie wyjścia

–       AID – wykorzystanie aid

ROUTE LISTING

————-

ROUTE        STAGE          NAME  USES   SEND                 RECV

NR           NR                   JOBNR    TO                 FROM

____________ ______________ _____ _____ _____________________ ____

0:r1         0:s1           R1:1      1 1:s1

0:r1         0:s3           R1:6      3     0

0:r1         0:s42          R1:2      2     0

0:r1         0:s413         R1:4    413   414

0:r1         0:s414         R1:4    414   415

0:r1         0:s415         R1:5    415    42

0:1:r1       0:1:s1         R2:2      1    41

0:1:r1       0:1:s2         R2:14     2 select 1 from 0:e413

0:1:r1       0:1:s41        R2:3     41    42

0:1:r1       0:1:s42        R2:4     42 1:s43

0:1:r1       0:1:s44        R2:5     44 select 1 from 45

0:1:r1       0:1:s45        R2:7     45    46

0:1:r1       0:1:s46        R2:8     46 2:s47

0:1:r1       0:1:s48        R2:9     48    49

0:1:r1       0:1:s49        R2:10    49   410

0:1:r1       0:1:s410       R2:11   410   411

0:1:r1       0:1:s411       R2:12   411   412

0:1:r1       0:1:s412       R2:13   412     2

0:1:1:r1     0:1:1:s2       R3:21     1     3

0:1:1:r1     0:1:1:s3       R3:22     2     0

0:1:1:r1     0:1:1:s43      R3:5    431 select 1 from 0:1:s44    *

0:1:1:r1     0:1:1:s998     R3:6    998     0

0:1:2:r1     0:1:2:s1       R4:28     1     0

0:1:2:r1     0:1:2:s2       R4:30     2     0

0:1:2:r1     0:1:2:s47      R4:12   471 select 1 from 0:1:s48    *

0:1:2:r1     0:1:2:s989     R4:18   989     0

0:1:2:r1     0:1:2:s990     R4:19   990     0

0:1:2:r1     0:1:2:s991     R4:20   991     0

0:1:2:r1     0:1:2:s992     R4:21   992     0

EVENT LIST

———-

1. Time= 0.00

Tli = var[411]:=0

2. Time= 0.00

Tli = var[412]:=120

3. Time= 0.00 (repeated every 5.00 units)

Tli = #exec var421.tli

PRODUCT PARAMETERS

——————

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

STOCK LISTING

————-

(0:s1)       (R1:1)–>  1000 products (code=401)

(0:1:1:s998) (R3:6)–>  1000 products (code=998)

(0:1:2:s989) (R4:18)–>  1000 products (code=989)

(0:1:2:s990) (R4:19)–>  1000 products (code=990)

(0:1:2:s991) (R4:20)–>  1000 products (code=991)

(0:1:2:s992) (R4:21)–>  1000 products (code=992)

TLI SYNTAX LISTING

——————

(0:1:e41)    Entry condition  = elqueue[E]=0

(0:1:e42)    Entry condition  = elqueue[E]=0

(0:1:e44)    Entry condition  = elqueue[E]=0

(0:1:e45)    Entry condition  = elqueue[E]=0

(0:1:e46)    Entry condition  = elqueue[E]=0

(0:1:e48)    Entry condition  = elqueue[E]=0

(0:1:e49)    Entry condition  = elqueue[E]=0

(0:1:e410)   Entry condition  = elqueue[E]=0

(0:1:e411)   Entry condition  = elqueue[E]=0

(0:1:e412)   Entry condition  = elqueue[E]=0

(0:1:1:e43)  Entry condition  = elqueue[E]=0

(0:1:2:e47)  Entry condition  = elqueue[E]=0

(0:1:e41)    Exit condition   = var[421]=1

(0:1:e42)    Exit condition   = var[421]=1

(0:1:e44)    Exit condition   = var[421]=1

(0:1:e45)    Exit condition   = var[421]=1

(0:1:e46)    Exit condition   = var[421]=1

(0:1:e48)    Exit condition   = var[421]=1

(0:1:e49)    Exit condition   = var[421]=1

(0:1:e410)   Exit condition   = var[421]=1

(0:1:e411)   Exit condition   = var[421]=1

(0:1:e412)   Exit condition   = var[421]=1

(0:1:1:e43)  Exit condition   = var[421]=1

(0:1:2:e47)  Exit condition   = var[421]=1

(0:1:e41)    MTBF             = random[var[412]]*900+var[411]

(0:1:e42)    MTBF             = random[var[412]]*900+var[411]

(0:1:e44)    MTBF             = random[var[412]]*900+var[411]

(0:1:e45)    MTBF             = random[var[412]]*900+var[411]

(0:1:e46)    MTBF             = random[var[412]]*900+var[411]

(0:1:e48)    MTBF             = random[var[412]]*900+var[411]

(0:1:e49)    MTBF             = random[var[412]]*900+var[411]

(0:1:e410)   MTBF             = random[var[412]]*900+var[411]

(0:1:e411)   MTBF             = random[var[412]]*900+var[411]

(0:1:e412)   MTBF             = random[var[412]]*900+var[411]

(0:1:1:e43)  MTBF             = random[var[412]]*900+var[411]

(0:1:2:e47)  MTBF             = random[var[412]]*900+var[411]

(0:1:e41)    MTTR             = random[2]*900+900

(0:1:e42)    MTTR             = random[2]*900+900

(0:1:e44)    MTTR             = random[2]*900+900

(0:1:e45)    MTTR             = random[2]*900+900

(0:1:e46)    MTTR             = random[2]*900+900

(0:1:e48)    MTTR             = random[2]*900+900

(0:1:e49)    MTTR             = random[2]*900+900

(0:1:e410)   MTTR             = random[2]*900+900

(0:1:e411)   MTTR             = random[2]*900+900

(0:1:e412)   MTTR             = random[2]*900+900

(0:1:1:e43)  MTTR             = random[2]*900+900

(0:1:2:e47)  MTTR             = random[2]*900+900

(0:j1)       Trig. on Exit    = #exec opcje.tli

(0:j413)     Aid              = select 1 from 3

(0:j414)     Aid              = select 1 from 3

(0:j415)     Aid              = select 1 from 3

(0:1:1:j431) Aid              = select 2 from 1,2

(0:1:2:j471) Aid              = select 2 from 1,2

(0:s1)       Send to          = 1:s1

(0:1:s2)     Send to          = select 1 from 0:e413

(0:1:s42)    Send to          = 1:s43

(0:1:s44)    Send to          = select 1 from 45

(0:1:s46)    Send to          = 2:s47

(0:1:1:s43)  Send to          = select 1 from 0:1:s44

(0:1:1:s43)  Receive from     = select 1 from 998

(0:1:2:s47)  Send to          = select 1 from 0:1:s48

(0:1:2:s47)  Receive from     = select 1 from (if kolor[0:1:e46,1]=1 then 989 e

­                       lse (if kolor[0:1:e46,1]=2 then 990 else (if kolor[0:1:

­                       e46,1]=3 then 991 else 992)))

EXECUTE FUNCTION AT REQUEST: usertli

#EXEC FILE (J1-EXIT TRIGGER ) <opcje.tli>

­     if produced[0:j1]<31 then projekt[C]:=projekty[produced[J]+1,1]

­     if produced[0:j1]<31 then wersja[C]:=projekty[produced[J]+1,2]

­     if produced[0:j1]<31 then kolor[C]:=projekty[produced[J]+1,3]

­     if produced[0:j1]<31 then tapicerka[C]:=projekty[produced[J]+1,4]

­     if produced[0:j1]<31 then fotele[C]:=projekty[produced[J]+1,5]

­     if produced[0:j1]<31 then zderzaki[C]:=projekty[produced[J]+1,6]

­     if produced[0:j1]<31 then atrapa[C]:=projekty[produced[J]+1,7]

­     if produced[0:j1]>30 then projekt[C]:=3

­     if produced[0:j1]>30 then wersja[C]:=produced[0:j1]-30

­     if produced[0:j1]>30 then kolor[C]:=random[3]+1

­     if produced[0:j1]>30 then tapicerka[C]:=random[1]+1

­     if produced[0:j1]>30 then fotele[C]:=random[1]+1

­     if produced[0:j1]>30 then zderzaki[C]:=random[1]+1

­     if produced[0:j1]>30 then atrapa[C]:=random[2]+1

DATABASE NAMES:

_______________

Database  1 = projekty

ATTRIBUTE NAMES:

________________

Attribute 10 = projekt

Attribute 11 = wersja

Attribute 12 = kolor

Attribute 13 = tapicerka

Attribute 14 = zderzaki

Attribute 15 = fotele

Attribute 16 = atrapa

End of document

  1. b.    Przedstawienie raportów z programu Taylor II

Przestawione poniżej raporty są raportami przykładowymi, z powodu losowego powstawania awarii, większość danych zmienia się w zależności od ilości i czasu awarii.

–   raport elementów

Taylor II Element report           Date: 14-09-1999  Time: 14:04

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

Cluster Elnr   Elname Produced AvgQueue   Util   Down

——– —- ——– ——– ——– —— ——

0          41 Wejście       182   915.13

0:1         1 Buff_2        181     1.00

0:1        41 Mycie         180     1.00  75.42   9.38

0:1        42 Suszenie      179     0.99  74.58   6.25

0:1:1      43 Malowani      178     0.99  74.58

0:1        44 faza1         177     0.98  74.17

0:1        45 faza2         176     0.98  73.75

0:1        46 faza3         175     0.98  73.33

0:1:2      47 Lakierni      174     0.97  72.92

0:1        48 faza1         173     0.97  72.50

0:1        49 faza2         172     0.96  72.08

0:1       410 faza3         171     0.96  71.67   9.38

0:1       411 faza4         170     0.95  71.25

0:1       412 faza5         169     0.95  70.83

0:1         2 Buff_14       169

0         413 Transpor      507     0.70  70.42

0          42 Wyjście              89.50

0:1:1     998 Podkład             900.12

0:1:2     989 Biały               978.39

0:1:2     990 Czerwony            970.45

0:1:2     991 zielen              979.14

0:1:2     992 pomaranc            976.06

gdzie :

–       Cluster – numer grupy

–       Elnr – numer elementu

–       Elname – nazwa elementu

–       Produced – liczba produktów

–       AvgQueue – średnia kolejka

–       Util – wykorzystanie urządzeń

–       Down – przerwy w pracy spowodowane uszkodzeniem

–   raport czynności

Taylor II Job report               Date: 14-09-1999  Time: 14:27

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

Cluster J_nr  Jobname Produced   Proces AvgQueue  AvgWait

——– —- ——– ——– ——– ——– ——–

0          41 E1:J1         182      182   915.13  25439.8

0:1         1 E2:J1         181      181     1.00    158.2

0:1        41 E3:J1         180      180     1.00    159.1

0:1        42 E4:J1         179      179     0.99    158.7

0:1:1      43 E5:J1         178      178     0.99    158.9

0:1        44 E5:J2         177      177     0.98    159.1

0:1        45 E7:J3         176      176     0.98    159.3

0:1        46 E8:J3         175      175     0.98    159.6

0:1:2      47 E11:J1        174      174     0.97    159.8

0:1        48 E9:J3         173      173     0.97    160.0

0:1        49 E10:J3        172      172     0.96    160.2

0:1       410 E11:J3        171      171     0.96    160.5

0:1       411 E12:J3        170      170     0.95    160.0

0:1       412 E13:J3        169      169     0.95    160.2

0:1         2 E14:J3        169      169

0         413 E3:J2         169      169     0.23     40.0

0:1:1     998 E6:J1                  179   900.12  25923.4

0:1:2     989 E17:J1                  37   978.39  28177.7

0:1:2     990 E18:J1                  55   970.45  27949.0

0:1:2     991 E19:J1                  41   979.14  28199.3

0:1:2     992 E20:J1                  42   976.06  28110.4

gdzie :

–       Cluster – numer grupy

–       J_nr – numer pracy

–       Jobname – nazwa pracy

–       Produced – liczba produktów

–       Proces – liczba przetworzonych produktów

–       AgvQueue – średnia kolejność

–       AgvWait – średni czas oczekiwania

  1. c.    Przedstawienie wyników symulacji w postaci graficznej

Jedną z metod graficznego przedstawienia wyników jest diagram symulowanego modelu.

Diagram ten pozwala na dokładne zorientowanie się, w jakim stanie znajdują się poszczególne elementy podczas trwania symulacji. Na wykresie oś pozioma jest reprezentowana przez czas, natomiast oś pionowa reprezentuje elementy modelu.

Opis wykresy :

–       busy – zajęty

–       idle – nie obciążony

–       block – element nie może przyjąć nowego produktu

–       pause – postój

–       down – element uszkodzony

Stan danego elementu i kolejkę do tego elementu można przedstawić na wykresie przedstawiającym tylko ten element . Wykresami takimi są wykresy wykorzystania elementu ( Utilization Pie ) i wykresy kolejki do elementu ( Queue graph )

Wykorzystanie maszyny 43

Gdzie :

–       busy – zajęty

–       idle – przerwa w pracy

–       down – element uszkodzony

Wykorzystanie maszyny 47

Wykorzystanie maszyny 42

Kolejka do maszyny 43

Na powyższym wykresie oś pozioma przedstawia czas symulacji, oś pionowa ilość elementów w kolejce.