Opis programu Arena

background image

1. Opis programu Arena

1.1.

Informacje ogólne o programie

Arena jest produktem firmy Rockwell Software

. Jest to pakiet dający możliwość

tworzenia modeli symulacyjnych w obszarze wytwarzania, transportu, magazynowania,

logistyki, dystrybucji, komunikacji i sprzeda

ży. Podstawowe wymagania sprzętowe to:

 Microsoft Windows 95 (OSR–2) / 98, NT 4.0 (Service Pack 5 lub późniejszy), Windows

2000,

 75 – 200 MB wolnego miejsca na dysku (w zależności od instalowanych opcji),

 32 MB RAM (zalecane 64 MB lub więcej, w zależności od systemu operacyjnego),

 zalecany jest procesor Pentium 300 MHz (lub wyższy).

Arena

jest w pełni kompatybilna z innymi aplikacjami Windows, wykorzystuje także

techniki OLE (Object Linking & Embeding) i ODBC (Open Database Connectivity). Poprzez

mechanizm OLE

można dołączać do modelu elementy typu „clipart”, części arkuszy

kalkulacyjnych (Excel

), dokumentów (Word) i prezentacji PowerPoint. Poprzez ODBC można

importować lub eksportować dane z modelu do arkuszy kalkulacyjnych i baz danych (np.

Acces, FoxPro, dBase). Arena

umożliwia import rysunków zapisanych w formacie .dxf

(programy CAD) oraz .vsd (Visio Drawing).

Arena

posiada kilka użytecznych aplikacji, które wspomagają proces tworzenia modelu

oraz opracowanie danych wejściowych i wyjściowych:

Input Analyzer jest uruchamiany poleceniem Tools / Input Analyzer. Może być używany

w celu dopasowywania rozkładów prawdopodobieństwa do wejściowych danych,

pochodzących np. z pomiarów dokonywanych w trakcie pracy systemu oraz dobierania

parametrów rozkładów tak, aby najlepiej oddawały charakter danych. Każdy tekstowy

plik, w którym dane są rozdzielone spacją, tabulatorem lub Enterem, jest odczytywany

przez Analyzera.

Rozkłady prawdopodobieństwa są dwojakiego rodzaju: teoretyczne – bazują na

matematycznych formułach i empiryczne – po dokonaniu podziału danych na grupy

oceniają wartości danych w każdej grupie. Każdy rozkład może być dyskretny, czyli

zwraca tylko wartości całkowite (np. rozkład Poissona) lub ciągły – zwraca wartości

rzeczywiste (np. wykładniczy, normalny). Analyzer wyświetla dane w postaci słupków i

dopasowuje rozkład, ale to użytkownik decyduje o wyborze rodzaju rozkładu.

Poprawność dopasowania jest sprawdzana trzema sposobami: średnie odchylenie

kwadratowe, test Chi

– Kwadrat i test Kołmogorowa – Smirnowa.

background image


2

Process Analyzer (PAN) jest uruchamiany poleceniem Tools / Process Analyzer, działa

na plikach z rozszerzeniem .p

, które są generowane podczas symulacji modelu. PAN

pomaga użytkownikowi zorganizować symulację różnych konfiguracji modelu i wybrać

na

jlepszą z nich, w oparciu o przeprowadzoną analizę statystyczną otrzymanych

wyników. Po otwarciu okna PAN można stworzyć nowy projekt, który będzie zawierał

kilka scenariuszy. Scenariusz składa się z pliku programu z rozszerzeniem .p, zbioru

wartości wybranych parametrów wejściowych modelu (Controls) oraz zbioru wybranych

parametrów, których wartości otrzymuje się w wyniku symulacji (Responses). Aby

skutecznie wykorzystać możliwości PAN, należy – budując model – zdefiniować

odpowiednie zmienne, które następnie będzie można wykorzystać w scenariuszach.

Zmieniając wartości zmiennych i liczbę sztuk zasobów buduje się wiele scenariuszy, z

których PAN pomaga wybrać optymalny.

Output Analyzer jest aplikacją niezależną od Areny. Nie jest instalowany domyślnie

razem z

Areną, należy wybrać instalację „custom” i zaznaczyć odpowiednią opcję. Działa

na plikach wyjściowych z rozszerzeniem .dat, utworzonych w Arenie np. przez moduł

Statistic.

Są to pliki o nazwie określonej w polu Output File, np. plik.dat. Output Analyzer

pozwala wyznaczać przedziały ufności, przeprowadzać statystyczne porównania,

przedstawiać graficznie wyniki symulacji, filtrować dane, odrzucając wartości pochodzące

z okresu rozruchu (Warm

– Up) itp.

OptQuest jest uruchamiany poleceniem Tools / OptQuest for Arena. Służy do

poszukiwania optymalnej konfiguracji modelu (czyli optymalnego zestawu wartości

zmiennych) dla zadanego kryterium (np. minimalizacja kosztu). Jeżeli liczba zmiennych

jest duża, to sprawdzenie wszystkich kombinacji wartości zmiennych w PAN wymagałoby

zdefiniowania bardzo dużej liczby scenariuszy. OptQuest poszukuje rozwiązania

optymalnego wykorzystując heurystyki Tabu Search i Scatter Search. Zadając zakresy

wartości poszczególnych zmiennych oraz ich wartości początkowe, można określić

ograniczenia, jakie wartości zmiennych muszą spełniać.

Visual Basic pozwala użytkownikowi na tworzenie własnego kodu, który poszerza

możliwości Areny. W ten sposób można dodawać nowe zmienne animacji, pobierać

wartości wyjściowych statystyk, otrzymanych w trakcie symulacji, zmieniać wartości

parametrów modułów itp. Kod jest przechowywany razem z modelem w pliku .doe.

Poleceniem Tools / Show Visual Basic Editor

otwiera się edytor Basica, w którym można

bezpośrednio wprowadzać kod. Za pośrednictwem Basica można współpracować z

innymi aplikacjami Microsoft Office, np. Excel.

background image


3

Podstawą Areny jest język symulacyjny SIMAN. Arena jest narzędziem przyjaznym

dla użytkownika, łatwo, przejrzyście i szybko daje dostęp do wszystkich funkcji języka

SIMAN

, nie wymagając jego znajomości. Istnieje możliwość bezpośredniego operowania na

kodzie SIMAN (polecenie Run / Run Control / Command

), co pozwala np. wykryć błędy,

sprawdzić działanie modelu. Wymaga to jednak znajomości komend języka. Po

uruchomieniu symulacji, Arena sprawdza model i generuje pliki z kodem SIMAN (pliki z

rozszerzeniem .mod i .exp

). Można również zobaczyć wygenerowany kod (polecenie Run /

SIMAN / View

) lub pisać własny (polecenie Run / SIMAN / Write). Panele Blocks i Elements

dają pełen dostęp do możliwości języka SIMAN, operując bezpośrednio na nim. Zawierają

wszystkie moduły z podstawowych trzech paneli (Basic Process, Advanced Process,

Advanced Transfer

) oraz dodatkowe, które zwiększają elastyczność modelowania.

Build Expression

jest bardzo użytecznym narzędziem dostarczanym przez Arenę.

Wspomaga budowanie różnego typu wyrażeń, także tych bardzo złożonych. Nie wymaga

znajomości składni wyrażenia, nazw i skrótów nazw zmiennych itp. Build jest wywoływany

kliknięciem prawego przycisku myszki w każdym polu, w którym można wprowadzić

wyrażenie liczbowe. Następnie wybiera się polecenie Build Expression. W efekcie pojawi się

okno

Builder’a. Przykładowe okno jest widoczne na rysunku.

Okno Build Expression

background image


4

Obszar Expression Type

zawiera zmienne, atrybuty, rozkłady itp., pogrupowane

tematycznie, które mogą być elementami składowymi wyrażenia. Po kliknięciu myszką na

wybranej pozycji (np. Number In Process), w polu Current Expression pojawi

a się wybrany

element w odpowiedniej postaci i składni (Process 1.WIP), z domyślnym argumentem

(Process 1

) oraz w prawym górnym rogu ukazuje się jedno lub więcej okienko (w tym

przypadku jedno

Process Name), w którym wybiera się argument dla danego wyrażenia

(okienka nie muszą się pojawiać, zależy to od wybranej pozycji). Po jego wybraniu,

wyrażenie przybiera postać Assembly Process.WIP. Przy wprowadzaniu symboli (w tym

przypadku = 0

) można korzystać z klawiatury lub z przycisków dostępnych w oknie.

Two

rzenie modelu polega na wyborze i umieszczeniu składowych elementów

(modułów) w głównym oknie modelu, odpowiednim ich połączeniu i zdefiniowaniu

parametrów. Arena automatycznie generuje kody źródłowe do symulacji (w języku

symulacyjnym SIMAN) i animacji (CINEMA).

Po otwarciu programu pojawia się okno nowego modelu.

Okno programu Arena

Częściami składowymi okna programu są:

Paski

narzędzi

Status Bar

Główne

okno

modelu

Project

Bar

Okno

danych

background image


5

 główne okno modelu (Flowchart View) zawiera elementy graficzne modelu, takie jak

schemat modelu, animację. Dwukrotne kliknięcie myszką na wybranym module otwiera

okno dialogowe, w którym można edytować dane. Dostęp do niektórych danych można

mieć tylko poprzez okno danych.

 okno danych (Spreadsheet View) zawiera wszystkie dane dotyczące poszczególnych

obiektów modelu, np. nazwa, atrybuty, czas. Pojedyncze kliknięcie na wybranym module

w oknie głównym lub w Project Bar otwiera arkusz, w którym zgrupowane są dane

dotyczące wszystkich modułów wybranego typu umieszczonych w modelu. Okno danych

może być ukryte lub wyświetlone. Służy do tego opcja View / Split Screen lub ikonka

Toggle Split Screen

w pasku narzędzi Standard.

 paski narzędzi pozwalają na szybszy dostęp do wielu funkcji, które znajdują się także w

głównym menu. Niektóre funkcje są dostępne tylko poprzez paski narzędzi.

Project Bar zawiera panele, w których umieszczone są moduły. Panele można

wyświetlać lub ukrywać za pomocą polecenia File / Template lub ikonek w pasku

narzędzi Standard (Template Attach / Detach). Klikając w Project Bar na zakładkę

wybranego panelu wyświetla się jego zawartość. Zakładka Reports zawiera spis kategorii

raportu, który jest wynikiem symulacji. Zakładka Navigate ułatwia poruszanie się po

modelu złożonym z wielu części (podmodele, animacja, wykresy itp.). Okno można ukryć

używając polecenia View / Project Bar.

Status Bar pokazuje informacje różnego typu, w zależności od aktualnie wykonywanej

czynności, np. współrzędne kursora myszki, nazwę wybranego obiektu, dane dotyczące

symula

cji w trakcie jej przeprowadzania. Okno można ukryć używając polecenia View /

Status Bar.


Zgodność Areny ze środowiskiem Windows powoduje, że większość operacji w Arenie

wykonywanych jest tak samo, jak w aplikacjach Windows (kopiowanie, zapisywanie, cofanie

operacji, drukowanie itp.).

1.2. Ograniczenia programu Arena

Akademicka wersja Areny jest przeznaczona tylko do nauki programu (np. na

uczelniach), w związku z tym posiada pewne ograniczenia. Budując model, można

korzystać prawie z wszystkich paneli (oprócz prywatnych paneli CSUtil i UtlArena), wszystkie

aplikacje (np. Output Analyzer, Visual Basic

) także są dostępne. Jednak nie można tworzyć

dużych modeli, ponieważ ustawiony jest limit na liczbę modułów używanych w jednym

modelu. Limit wynosi 50 wierszy mod

ułów (blokowych i danych), co pozwala na

modelowanie niewielkiego systemu (część modułów zajmuje więcej, niż jeden wiersz, np.

moduł Process dodaje do modelu trzy wiersze). Limit dla panelu Script i Contact Data jest

background image


6

mniejszy

– 17 wierszy, a dla panelu Packaging – 10. Przekroczenie dozwolonej liczby

wierszy ma swoje następstwa – nie można zapisać modelu, ani uruchomić jego symulacji.

Jest to poważne ograniczenie możliwości użytkownika, nie pozwalające mu budować

złożonych systemów, a także zbytnio wnikać w szczegóły sztuki modelowania.

Kolejne ograniczenie związane jest z przeprowadzaniem symulacji modelu. W trakcie

symulacji liczba jednostek w systemie (czyli suma jednostek we wszystkich modułach) nie

może przekraczać 100 sztuk. Przekroczenie tego limitu powoduje wygenerowanie błędu i

przerwanie symulacji.

Inne ograniczenie jest narzucone na tworzenie animacji, która także nie może być zbyt

złożona, składająca się z wielu szczegółów. Dopuszczalna liczba obiektów graficznych to 50.

1.3.

Podstawowe definicje związane z programem

Jednostka (entity) jest dynamicznym obiektem w symulacji. Jest tworzona,

przemieszczana wewnątrz systemu, podlega obróbce lub obsłudze, a następnie jest

usuwana z systemu. Jednostką może być część, która wymaga obróbki w systemie

wytwarza

nia, rozmowa telefoniczna przychodząca np. do call center, klient, który czeka na

obsługę np. w banku lub urzędzie itp. System może zawierać wiele typów jednostek, każdy

typ jednostki może posiadać wiele ich rodzajów. Przykładowo, w systemie są do obsłużenia

klienci i rozmowy telefoniczne. Klientów można podzielić np. ze względu na rodzaj sprawy,

którą mają do załatwienia lub ze względu na rodzaj personelu wymaganego do obsługi.

Atrybut (attribute) opisuje cechy charakterystyczne jednostek, np. rodzaj, cz

as obsługi,

różnego typu koszty. Atrybut jest wspólny dla wszystkich jednostek, ale zazwyczaj nie

wszystkie jednostki mają taką samą jego wartość. To powoduje, że jednostki różnią się

pomiędzy sobą. Użytkownik może nadawać jednostkom własne atrybuty lub przydzielać

nazwę, wartość do atrybutów automatycznie dołączonych do jednostek.

Zmienna (variable

) opisuje cechy charakterystyczne systemu. Zmienna może być

definiowana przez użytkownika (np. współczynniki, czas czekania na obsługę) lub

wbudowana w program

(np. czas symulacji, liczba jednostek w kolejce). Może mieć postać

wektora lub macierzy. Jest szeroko wykorzystywana w modelowaniu, posiada wiele

użytecznych zastosowań.

Kolejka (queue

) jest miejscem, gdzie jednostki czekają np. na zajęcie zasobu, który

aktualnie obsługuje inną jednostkę. Po zwolnieniu zasobu, pierwsza czekająca jednostka

opuszcza kolejkę i przywłaszcza sobie zasób. Podczas animacji można zobaczyć, ile

background image


7

jednostek czeka w każdej kolejce. Można ustawiać maksymalną długość kolejki, określać

r

eguły kolejkowania (np. FIFO, LIFO) itp.

Stacja (station

) jest miejscem w systemie, gdzie zachodzą pewnego typu procesy, np.

obróbka danego rodzaju jednostek, przybycie jednostek. Najczęściej stacje powiązane są z

przemieszczaniem się jednostek, definiując miejsca bieżącego pobytu i miejsca

przeznaczenia. Stacje mogą być punktem początkowym sekwencji modułów, zakończonej

np. modułem transportującym jednostki do innej stacji.

Zasób (resource) to dobro obecne w systemie (np. ludzie, maszyny, wyposażenie,

m

iejsce w magazynie), o które rywalizują jednostki. Jednostki, przechodząc przez system,

podlegają obróbce, obsłudze różnego typu. W tym celu zajmują określony zasób (lub

zasoby) i zwalniają go po zakończeniu procesu.

Podmodel (submodel) jest dogodnym spo

sobem modelowania dużych, złożonych

systemów. Dzieląc taki system na mniejsze części (podmodele), które mogą na siebie

oddziaływać lub nie, tworzy się hierarchicznie zorganizowany model. Można oddzielnie

sprawdzić działanie, poprawność każdego z podmodeli, a następnie połączyć je ze sobą.

1.4.

Główne menu programu

Z głównego menu można wybrać większość funkcji dostępnych w Arenie. Część z nich

dostępna jest także w paskach narzędzi, natomiast niektóre funkcje można uruchomić tylko z

pasków narzędzi.

 menu File

Menu pozwala tworzyć nowe modele, otwierać,

zapisywać i zamykać istniejące, dołączać i ukrywać

panele z modułami w Project Bar. Umożliwia

importowanie rysunków z programów CAD zapisanych

w formacie .dxf

(które będą tłem animacji lub aktywnymi

jej częściami, np. maszynami) oraz z programu Visio

Drawing w formacie .vsd

. Można zdefiniować nową

paletę kolorów, zapisać ją i później ponownie otworzyć.

Dostępna jest opcja drukowania i wysyłania e–maili

bezpośrednio z Areny, do których można dołączyć

background image


8

aktywny mode

l. Program pamięta również ostatnio otwarte pliki. Polecenie Exit zamyka

program.

 menu Edit

Większość opcji dostępna w tym menu jest znana z innych

programów Windows. Można cofnąć i ponowić czynności,

wyciąć, kopiować i wklejać wybrane obiekty. Można też wkleić

link do dokumentu, który jest w schowku (Paste Link), a potem

zmodyfikować go (Links). Kolejne polecenia pozwalają

zduplikować, usunąć wybrany obiekt, a także zaznaczyć lub

odznaczyć obiekty w modelu. Opcja Entity Picture pozwala

zmieniać wygląd jednostek zdefiniowanych w modelu, a także

tworzyć nowe symbole jednostek i dołączać je do bibliotek

(pliki .plb). Polecenie Find

wyszukuje podany ciąg znaków w

modułach, a Properties pokazuje dodatkowe właściwości

obiektów. Insert New Object umożliwia wstawianie obiektów z

innych aplikacji, np. grafiki, dźwięku, arkusza kalkulacyjnego, a

następnie ich edycję (Obiekt).

 menu View

Menu pozwala ustawić pożądany widok głównego okna

modelu za pomocą opcji Zoom, a także Views. Opcja

Named Views

umożliwia zdefiniowanie widoków poprzez

przypisanie danemu widokowi okna nazwy i klawisza

skrótu, co pozwala wywołać go w dowolnej chwili.

Kolejne trzy opcje to włączanie i ustawianie siatki oraz

automatyczne

dociąganie

do

linii

siatki

przemieszczanych

obiektów.

Layers

służy

do

definiowania warstw. Toolbars

pozwala wybrać, które

paski narzędzi będą widoczne. Zaznaczone pozostałe

opcje pokazują okno danych, Project Bar i Status Bar.

 menu Tools

Arena

współpracuje z kilkoma

modułami,

które

można

wywołać z menu Tools. Input

background image


9

Analyzer

dopasowuje rozkład statystyczny do danych pochodzących z obserwacji

rzeczywistego systemu. Process Analyzer

pomaga stworzyć wiele wersji symulacji i

analizować otrzymane wyniki. Contact Center dostarcza specjalne funkcje do modelowania

contact / c

all centers. Kolejne dwie opcje pozwalają importować i eksportować dane z/do

Access i Excel. OptQuest

pomaga wybrać takie ustawienia wejść modelu, aby uzyskać

określone wartości wyjść. Show Visual Basic Editor otwiera okno, w którym można zapisać

kod w języku Visual Basic. Options modyfikuje ustawienia Areny.

 menu Arrange

Menu pozwala operować wybranymi modułami i elementami grafiki:

przesuwać na wierzch lub pod spód, grupować i rozgrupować,

odwracać obiekty dookoła linii w wybranym kierunku oraz obracać o

90

0

zgodnie z ruchem wskazówek zegara. Align ustawia obiekty

według ich górnego, dolnego, lewego lub prawego brzegu. Distribute

rozmieszcza obiekty równomiernie w poziomie lub w pionie, w

zdefiniowanej odległości. Flowchart Alignment rozmieszcza wybrane

moduły równomiernie w poziomie i w pionie. Snap to Grid ustawia

wybrane obiekty według linii siatki. Można także zmieniać punkty,

według których obiekty będą dociągane do siatki.

 menu Object

Menu zawiera polecenia związane z logicznymi

połączeniami pomiędzy modułami. Connect pozwala

połączyć

dwa

moduły,

Auto

Connect

automatycznie

łączy

wstawiany

moduł

z

zaznaczonym modułem. Smart Connect sprawia, że

linie łączące moduły są wzajemnie równoległe i

prostopadłe. Zaznaczona opcja Animate Connectors

pokazuje

przemieszczające się jednostki w czasie

symulacji. Submodel

pozwala tworzyć model w

formie hierarchicznie zależnych podmodeli.

 menu Run

Menu zawiera polecenia związane z przeprowadzaniem symulacji. Setup pozwala ustawić

parametry symulacji. Go uruchamia

lub wznawia symulację po przerwaniu, Step pozwala na

wykonanie jednego kroku symulacji, Fast

– Forward uruchamia symulację w szybkim tempie,

nie pokazując animacji. Pause zatrzymuje symulację, ponownie uruchomić można ją za

background image


10

pomocą Go, Step lub Fast – Forward, Start Over pozwala powtórnie przeprowadzić

symulację, End umożliwia wyjście z trybu

symulacji do trybu modelowania. Check Model

sprawdza poprawność modelu przed jego

uruchomieniem, Review Errors przypomina

ostatnio wykryte błędy i uwagi. Run Control

d

ostarcza szeregu opcji użytecznych podczas

symulacji. Command

udostępnia okno, w którym

można zmieniać sposób działania programu,

Break

przerywa symulację w określonym

momencie, Break on Module

– na określonym

module. Watch

umożliwia śledzenie zmiennych

lub realizacji procesu. Highlight Active Module

podświetla w trakcie symulacji aktywny moduł.

Zaznaczenie Batch Run

przeprowadza symulację bez animacji. Polecenie SIMAN pozwala

ingerować w generowany automatycznie kod języka SIMAN.

 menu Window

Menu umożliwia operowanie wyglądem kilku jednocześnie

otwartych okien, rozmieszczając je kaskadowo lub tak, że nie

zachodzą na siebie. Arrange Icons szereguje ikony wielu

zminimalizowanych okien. Można także wybierać pomiędzy

ustawieniami koloru tła użytkownika i systemowymi. Przejście

do wybranego okna otwartego modelu umożliwia lista w dolnej

części menu.

 menu Help

Arena posiada bardzo rozbudowany

system

pomocy,

zawierający

objaśnienia

do

większości

opcji,

modułów,

po

rozbudowane

przykłady modeli. Z każdego modułu

można

bezpośrednio

przejść

do

pomocy na jego temat. Arena Help

Topics

to kompletna pomoc, po której można się poruszać poprzez zakładki Zawartość,

Indeks, Znajdź. Using Help zawiera informacje o sposobie korzystania z pomocy. Następne

trzy opcje pozwal

ają przejść bezpośrednio do pomocy na temat trzech głównych paneli

background image


11

wykorzystywanych w modelowaniu. Pozostałe trzy opcje zawierają linki do pomocy online i

informacji o używanej wersji programu.

1.5.

Paski narzędzi

Arena

posiada 8 pasków narzędzi z wieloma przyciskami. Część poleceń

uruchamianych z pasków jest także dostępna w głównym menu. Niektóre polecenia są

osiągalne tylko poprzez ikonki widoczne w paskach narzędziowych. Wybierając View /

Toolbar

można ustawić, które z nich mają być widoczne.

 pasek narzędzi Standard

Pozwala otworzyć nowy lub już istniejący model, zapisać aktywny model, dołączyć

(Template Attach

) lub ukryć (Template Detach) panel z modułami w Project Bar. Dostępne

są również opcje drukuj, podgląd wydruku, wytnij, kopiuj, wklej, cofnij i ponów. Przycisk

Toggle Split Screen pokazuje lub ukrywa okno danych, View a Region

umożliwia

powiększenie wybranej części modelu, Zoom – ustawienie wielkości widoku dla całego okna.

Layers poz

wala definiować warstwy, Submodel – podmodele, a Connect – połączenia

pomiędzy modułami. Ostatni przycisk wywołuje pomoc programu Arena. Pozostałe sześć

przycisków związanych jest ze sterowaniem symulacją, dostępne są także w menu Run.

 pasek narzędzi Draw

Pozwala rysować linie proste i łamane, łuki i krzywe, prostokąty, wielokąty i elipsy oraz

wstawiać tekst. Można także ustawiać kolor linii, wypełnienia, tekstu oraz tła głównego okna

mo

delu. Poza tym można wybrać styl linii i styl wypełnienia. Wciśnięty klawisz Shift podczas

rysowania pozwala narysować:

– linię poziomo, pionowo lub pod kątem 45

0

,

– krzywą / linię łamaną / wielokąt, których odcinki od punktu do punktu będą pionowe,

poziome l

ub pod kątem 45

0

,

– kwadrat zamiast prostokąta, koło zamiast elipsy.

background image


12

 pasek narzędzi Animate

Pozwala dołączać dodatkowe elementy do tworzonej animacji modelu lub poprawiać

standardową animację zawartą w niektórych modułach. Po kliknięciu na przycisk należy

wypełnić okno dialogowe, które się pojawi i umieścić element w modelu. Tym sposobem

można dodać:

– zegar (Clock) i datę (Date) wskazujące czas i dzień symulacji,

– pole zmiennej (Variable) i poziomu wartości (Level) danego wyrażenia, których

zmieniająca się w trakcie symulacji wartość będzie widoczna na ekranie,

– histogram (Histogram) i wykres (Plot) pokazujący graficznie zmiany danego

wyrażenia,

– zdefiniować inny wygląd i właściwości kolejki (Queue) i zasobu (Resource),

– globalny rysunek (Global) dla danego wyrażenia, który będzie się zmieniał wraz ze

zmianą jego wartości.

 pasek narzędzi Animate Transfer

Pozwala dołączać nowe elementy animacji modelu, np. magazyn, obszar parkowania,

transporter, stacje, skrzyżowania, drogi transportu, segmenty przenośnika taśmowego.

 pasek narzędzi View

Pozwala na szybszy dos

tęp do funkcji dostępnych w menu głównym View, np. tworzenie

widoków okien, powiększanie i pomniejszanie, ogólny i poprzedni widok, pokazanie siatki i

możliwość automatycznego dociągania do niej.

background image


13

 pasek narzędzi Arrange

Pozwala na szybszy dostęp do funkcji dostępnych w menu głównym Arrange np. przesuń na

wierzch lub pod spód, grupuj / rozgrupuj, odwracanie i obrót, ustawianie na górze, na dole, z

prawej, z lewej, rozmieszczanie.

 pasek narzędzi Run Interaction

Pozwala na szybszy dostęp do funkcji dostępnych w menu głównym Run, np. sprawdzanie

poprawności modelu (Check), dostęp do okna poleceń pozwalającego ingerować w przebieg

programu (Command

), możliwość przerwania symulacji w danym momencie (Break) lub na

danym module (Break on Module

), śledzenie wartości zmiennych (Watch), widoczność lub

nie jednostek przesuwających się wzdłuż połączeń w trakcie animacji (Animate Connectors).

 pasek narzędzi Integration

Pozwala na szybki dostęp do modułu, który przesyła dane do / z Areny (Module Data

Transfer

) oraz uzyskać dostęp do Visual Basica.

background image


14

2. Podstawowe panele programu Arena

Panele można wyświetlać lub ukrywać za pomocą polecenia File / Template lub ikonek

z paska narzędzi Standard (polecenie Template Attach / Detach). Panele są plikami z

rozszerzeniem .tpo

, zawierają moduły używane w trakcie tworzenia modelu. Podstawowe

panele, za pomocą których można zbudować większość modeli, to Basic Process, Advanced

Process i Advanced Transfer

. Rzadziej używane są Blocks i Elements, które dają pełny

dostęp do języka SIMAN. Pozostałe panele zawierają specjalistyczne moduły, przydatne np.

w modelowaniu contact center.

Podstawowe typy modułów to:

moduły blokowe – są obiektami, które opisują dynamiczne procesy modelu. Można je

umieścić w oknie głównym i połączyć ze sobą, definiując tym samym przepływ jednostek.

W trzech podsta

wowych panelach moduły blokowe najczęściej mają kształt prostokąta z

kolorowym wypełnieniem (żółte, różowe, zielone, niebieskie). Przeniesienie modułu z

panelu do głównego okna odbywa się poprzez „złapanie” ikonki modułu lewym klawiszem

myszki i „przeciągnięcie” go do okna. Jednocześnie w oknie danych pojawia się pasek z

danymi do edycji. Po otwarciu okna dialogowego dowolnego modułu, pierwszym polem w

górnym, lewym rogu jest pole Name. Wprowadzona tam nazwa pojawi się na symbolu

modułu (czyli na kolorowym prostokącie), widocznym w modelu. Nazwy np. stacji,

kolejek, środków transportu należy wprowadzać w pola zatytułowane – odpowiednio –

Station Name, Queue Name, Transporter Name

. Wszystkie nazwy muszą być unikalne,

nie mogą się powtarzać.

moduły danych – definiują różne elementy procesu, np. jednostki, zasoby, kolejki,

zmienne, statystyki. Można je edytować tylko w oknie danych, gdyż nie są widoczne w

głównym oknie. W tym celu należy kliknąć na ikonkę modułu widoczną w Project Bar.

Kliknięcie prawym klawiszem myszki na wybrany pasek w oknie danych i wybranie opcji

Edit via Dialog

pozwoli na edytowanie modułu w okienku dialogowym. Moduły danych

wyglądają tak samo w każdym panelu, ikonka ma postać szaro – niebieskiej tabelki.

Moduł danych może zostać utworzony przez użytkownika lub automatycznie przez

program. Przykładowo, umieszczenie w modelu modułu blokowego, który wykorzystuje

np. zasób, kolejkę, zmienną, spowoduje pojawienie się wiersza w odpowiednim module

danych

– w tym przypadku Resource, Queue, Variable.

background image


15

2.1.

Charakterystyka modułów z panelu Basic Process

Basic Process

zawiera moduły, które są niezbędne do zbudowania każdego modelu.

Często wystarczają, aby zbudować prosty model. Niektóre moduły, np. Create, Dispose,

muszą się znaleźć w każdym modelu. W skład panelu wchodzą następujące moduły

blokowe:

Assign jest stosowany do przydzielania nowej wartości zmiennym,

atrybutom jednostek i innym zmiennym systemowym. W

pojedynczym module można przypisać wartości wielu zmiennym,

atrybutom itp. Jednostce wchodzącej do modułu zostają przypisane

atrybuty, które ten moduł zawiera, w kolejności, w której są

wprowadzone do modułu. Oznacza to, że definiując atrybuty można

się opierać na tych określonych wcześniej, np. określenie na

początku, jakiego typu jest jednostka pozwoli później na przypisanie

atrybutów danym typom jednostek. Jednostka wchodząca do

modułu powoduje przypisanie nowych wartości wszystkim

zmiennym, które są w nim wymienione. Łącząc moduł Assign z modułem Record można

zbierać dodatkowe statystyki, np. czas pomiędzy zdarzeniami. Opcja Variable w polu

Assignments

nie pozwala przypisywać zmiennych tablicowych, do tego celu należy

używać opcji Other.

Batch jest modułem grupującym jednostki (wszystkie lub o wskazanym atrybucie) w

grupy o wielkości zdefiniowanej w polu Batch Size. Jednostka wchodząca do modułu jest

umieszczana w kolejce, dopóki nie zbierze się ich wymagana ilość. Wtedy opuszczają

moduł jako grupa jednostek. Grupować można na stałe (opcja Permanent), jeśli

informacje o poszczególnych członkach grupy nie będą wymagane w dalszej części

modelu lub tymczasowo (opcja Temporary)

– taka grupa musi być potem rozdzielona za

pomocą modułu Separate. Każda grupa posiada swojego przedstawiciela (representative

entity

), tworzonego w trakcie formowania się grupy, który przejmuje cechy

charakterystyczne poszczególnych jednostek z grupy. Jego atrybuty zależą od typu grupy

i opcji wybranej w polu Save Criterion

w następujący sposób:

– jeśli grupa jest stała, to wewnętrzne atrybuty każdej jednostki związane z czasem i

kosztami są sumowane i przydzielane przedstawicielowi, a atrybut Entity.CreateTime

jest obliczany jako minimalna wartość tego atrybutu wśród członków grupy. Atrybuty

specjalnego przeznaczenia (np. Entity.Sequence, Entity.Type

) mają takie wartości, jak

pier

wszy członek w grupie, jeżeli w Save Criterion wybrana jest opcja First, Sum lub

Product. Opcja Last

powoduje przydzielenie takich wartości atrybutom specjalnego

przeznaczenia, jak posiadane przez ostatniego członka w grupie. Wartości atrybutów

background image


16

przydzielan

ych przedstawicielowi, które zdefiniował użytkownik, są takie, jak

pierwszego lub ostatniego członka w grupie (opcja First lub Last). Opcja Product

powoduje pomnożenie wartości atrybutu przez liczbę członków w grupie, a opcja Sum

– zsumowanie wartości tyle razy, ilu jest członków.

– jeśli grupa jest tymczasowa, to wewnętrzne atrybuty przedstawiciela, związane z

czasem i kosztami, są ustawiane jako zero, a atrybut Entity.CreateTime jest czasem

utworzenia grupy. Atrybuty specjalnego przeznaczenia (np. Entity.Sequence,

Entity.Type

) mają takie wartości, jak pierwszy członek w grupie, jeżeli w Save Criterion

wybrana jest opcja First, Sum lub Product. Opcja Last powoduje przydzielenie takich

wartości atrybutom specjalnego przeznaczenia, jak posiadane przez ostatniego

członka w grupie. Wartości atrybutów przydzielanych przedstawicielowi, które

zdefiniował użytkownik, są takie, jak pierwszego lub ostatniego członka w grupie

(opcja First lub Last). Opcja Product

powoduje pomnożenie wartości atrybutu przez

liczbę członków w grupie, a opcja Sum – zsumowanie wartości tyle razy, ilu jest

członków.

Po rozdzieleniu tymczasowej grupy

– za pomocą modułu Separate – przedstawiciel

grupy zostaje usunięty, a jednostki odzyskują niektóre swoje atrybuty o wartościach

takich, jakie mia

ły przed zgrupowaniem. Obok modułu pojawia się liczba, która w trakcie

symulacji wskazuje, ile jednostek czeka w danej chwili w kolejce.

Create tworzy jednostki na wejściu modelu. Jest modułem, który musi się znajdować w

każdym modelu. Pozwala określić typ przybywających jednostek (Entity Type), można to

zrobić także w module Assign, nadając wartości atrybutowi Entity.Type. Zdefiniowane

typy jednostek pojawią się automatycznie w module Entity, gdzie można zmieniać

domyślne ustawienia. Czas pomiędzy przybyciami kolejnych jednostek może być

określony planem (opcja Schedule w polu Type), który należy zdefiniować w module

Schedule

, wybierając w nim w polu Type opcję Arrival. Inny sposób określenia częstości

przybyć jednostek to podanie stałej liczby (Constant) lub wyrażenia (Expression), które

najczęściej zawiera rozkład wykładniczy Expo, najbardziej odpowiedni w tym celu. Wtedy

w polu Value

wprowadza się wartość średnią, a w polu Units – jednostki czasu. Pole

Entities per Arrival

służy do określenia, ile jednostek przybywa jednocześnie w danym

czasie, przy czym przybywające jednostki nie tworzą grupy. Pole Max Arrivals podaje

liczbę jednostek wprowadzonych do systemu podczas całej symulacji, przy czym Infinite

oznacza, że nie ma takiego ograniczenia. First Creation wskazuje, kiedy ma przybyć

pierwsza jednostka. Jednostce tworzonej przez moduł zostaje przypisanych

automatycznie kilka zmiennych, do których można się odwoływać w modelu, m. in.

Entity.CreateTime

– czas przybycia, Entity.SerialNumber – unikalny numer jednostki.

background image


17

Decide jest modułem, który „podejmuje decyzje”, w którą gałąź jednostka ma być

skierowana, czyli którą trasą ma podążyć. Decyzje oparte są na warunkach (Condition)

lub prawdopodobieństwie (Chance). Jeśli jest jeden warunek (opcja 2 – way by

Condition

), wtedy moduł ma dwie gałęzie, przez które przechodzą jednostki spełniające

(gałąź True) lub nie (gałąź False) dany warunek. Np. jednostki spełniające warunek

Entity.Type = Part1

przejdą do gałęzi True, pozostałe – do False. Wybranie opcji N – way

by Condition

i podanie większej liczby warunków sprawi, że pojawi się tyle wyjść, ile jest

warunków. Każda jednostka zostanie przesunięta do wyjścia odpowiadającego

warunkowi, który spełnia. Ta sama zasada dotyczy stosowania prawdopodobieństwa.

Np. dla opcji 2

– way by Chance podanie w polu Percent True liczby 80 spowoduje, że

80% jednostek zostanie skierowanych do gałęzi True, 20% – do False. Przy wybieraniu

opcji N

– way by Chance ważne jest, aby suma prawdopodobieństw z wszystkich wyjść

nie była większa niż 100%. Wszystkie wyjścia muszą być połączone z modułami, można

dołączyć kilka wyjść do jednego modułu. Warunki mogą zawierać zmienne, atrybuty lub

wyrażenia, których zbudowanie ułatwia Build Expression, wywoływany przez kliknięcie

prawym klawiszem myszki w polu Value.

Dispose jest modułem umieszczanym na końcu modelu, który jest odpowiedzialny za

usuwanie jednostek z systemu. Podobnie jak Create

, musi się znajdować w każdym

modelu. Wszystkie statystyki

– zdefiniowane przez użytkownika i wbudowane – są

zapisywane w chwili wyjścia jednostki z systemu. Rodzaj zbieranych statystyk można

określić w Run / Setup / Project Parameters, gdzie zaznacza się odpowiednie pola

wymienione na obszarze Statistics Collection

. Jednostki, które wcześniej zostały

zgrupowane tymczasowo w module Batch

, muszą być rozdzielone przed wyjściem, do

czego używa się modułu Separate. W trakcie symulacji obok modułu pojawia się liczba

wskazująca, ile jednostek opuściło już system.

Process jest jednym ze sposobów definiowania różnego rodzaju czynności, do

wykonania których wykorzystuje się zasoby lub nie. Może to być obróbka części na

maszynach, odebranie telefonu przez operatora, obsłużenie pacjenta w szpitalu i wiele

innych. Pole Type

określa, czy czynność będzie zdefiniowana tylko w tym module (opcja

Standard), czy w podmodelu (opcja Submodel). Po wybraniu opcji Standard

należy

wybrać rodzaj działania (Action), jakie zostanie podjęte w module. Dostępne opcje to:

Delay oznacza, że działanie modułu powoduje opóźnienie przejścia jednostki o

podany czas, który może być określony zarówno stałą liczbą, jak i rozkładem. Takie

samo działanie definiuje moduł Delay z Advanced Process;

background image


18

Seize Delay oznacza, że działanie modułu polega na przywłaszczeniu zasobu, a

następnie na opóźnieniu jednostki o podany czas, konieczny np. na wykonanie

działania przez zasób. W polu Resources można definiować, jaki zasób (jeden lub

więcej) jest wymagany i w jakiej ilości (Quantity). Zasoby mogą być także wybierane

ze zbiorów zdefiniowanych w module Set. Zwolnienia zasobu – po wykonanej

czynności – można dokonać modułem Release lub Process. Takie samo działanie

można zdefiniować używając modułów Seize i Delay z Advanced Process;

Seize Delay Release oznacza, że działanie modułu polega na przywłaszczeniu

zasobu, opóźnieniu jednostki o podany czas, a następnie na zwolnieniu zasobu. Takie

samo działanie można zdefiniować używając modułów Seize, Delay oraz Release z

Advanced Process;

Delay Release oznacza, że działanie modułu polega na opóźnieniu jednostki o podany

czas, a n

astępnie na zwolnieniu zasobu, który wcześniej został przywłaszczony

modułem Seize lub Process. Takie samo działanie można zdefiniować używając

modułów Delay oraz Release z Advanced Process.

Jeśli czynność wymaga zajęcia zasobu, wtedy do modułu zostaje dołączona kolejka, w

której jednostki będą czekać na zasób. Kolejka pojawia się automatycznie w module

Queue

, gdzie można ją edytować. Priority służy do określenia priorytetu, z jakim jednostki

czekające na dany zasób w różnych modułach będą go zajmować, przy czym

pierwszeństwo mają jednostki z priorytetem High(1). Jeśli priorytety są równe, obowiązuje

metoda FIFO. Pole Allocation

określa, do jakiego atrybutu zostanie dopisany czas i koszt

opóźnienia:

Value Added powoduje dopisanie czasu / kosztu opóźnienia do atrybutu

Entity.VATime / Entity.VACost

, który przechowuje całkowity czas / koszt gromadzony

w procesach i opóźnieniach oznaczanych jako Value Added;

Non – Value Added powoduje dopisanie czasu / kosztu opóźnienia do atrybutu

Entity.NVATime / Entity.NVACost

, który przechowuje całkowity czas / koszt

gromadzony w procesach i opóźnieniach oznaczanych jako Non–Value Added;

Transfer dopisuje czas / koszt opóźnienia do atrybutu Entity.TranTime /

Entity.TranCost

, który przechowuje całkowity czas / koszt gromadzony podczas

transportu oraz w procesach i opóźnieniach oznaczanych jako Transfer;

Wait dopisuje czas / koszt opóźnienia do atrybutu Entity.WaitTime / Entity.WaitCost,

który przechowuje całkowity czas / koszt gromadzony w kolejkach oraz w procesach i

opóźnieniach oznaczanych jako Wait;

Other powoduje dopisanie czasu / kosztu opóźnienia do atrybutu Entity.OtherTime /

Entity.OtherCost

, który przechowuje całkowity czas / koszt gromadzony w procesach i

opóźnieniach oznaczanych jako Other lub wtedy, gdy nie ma wyznaczonej kategorii.

background image


19

Wybranie opcji Submodel

oznacza, że czynność będzie zdefiniowana w podmodelu,

który otwiera się klikając prawym klawiszem myszki na ikonce modułu i wybierając Edit

Submodel

. Pozwala to zdefiniować złożone czynności przy użyciu wielu modułów, nie

komplikując głównego modelu. W trakcie symulacji obok modułu pojawia się liczba

wskazująca, ile jednostek jest w danej chwili w module (tzn. w obróbce i w kolejce). Za

pomocą modułów CreateProcessDispose można zbudować model najprostszego

systemu.

Record stosuje się w celu zapisywania – w trakcie symulacji – statystyk zdefiniowanych

przez użytkownika. Moduł zawiera kilka typów statystyk, wybieranych w polu Type:

Count jest statystyką, której wartość jest zwiększana lub zmniejszana o wartość

o

kreśloną w polu Value – zależnie od tego, czy jest to wartość dodatnia, czy ujemna –

a następnie zapisywana w liczniku o nazwie podanej w polu Counter Name. W ten

sposób można np. zliczać jednostki w modelu, który ma kilka wyjść. Statystyka tego

typu jest

liczbą całkowitą.

Entity Statistics to opcja, która pozwala zbierać ogólne statystyki dotyczące jednostek.

Zawierają one informacje dotyczące czasów, kosztów, np. VA Cost / Time, Total Cost /

Time.

Takie same statystyki można otrzymać, jeśli w Run / Setup / Project Parameters

zaznaczy się opcje Costing i Entities. Jeżeli w trakcie symulacji zostaną zmienione np.

typy jednostek, wtedy używając modułu Record można zapisać te informacje, zanim

zostaną zmienione.

Time Interval to statystyka zawierająca różnice pomiędzy wartością atrybutu o nazwie

Attribute Name

, zdefiniowanego wcześniej np. modułem Assign, a bieżącym czasem

symulacji, co zapisywane jest w rejestrze o nazwie podanej w polu Tally Name. W ten

sposób można otrzymać np. czas, jaki upłynął pomiędzy dwoma zdarzeniami. W

miejscu, gdzie zachodzi pierwsze zdarzenie umieszcza się moduł Assign i definiuje

atrybut o wartości TNOW, wskazującej bieżący czas symulacji. Record umieszcza się

w miejscu drugiego zdarzenia i w polu Attribute Name

odwołuje się do nazwy tego

atrybutu. Jednostka, wchodząc do Record, powoduje zapisanie liczby w rejestrze,

która jest różnicą pomiędzy bieżącym czasem symulacji, a czasem, w którym zaszło

pierwsze zdarzenie.

Time Between zapisuje czas pomiędzy przybyciami kolejnych jednostek do modułu

Record. Czas przybycia pierwszej jednostki nie jest zapisywany w rejestrze o nazwie

Tally Name

, gdyż oznacza początek odliczania.

Expression

powoduje zapisanie w rejestrze wyrażenia o wartości podanej w polu Value

za każdym razem, gdy jednostka wchodzi do modułu.

background image


20

Moduł zawiera pole Record into Set, którego zaznaczenie powoduje, że wyniki będą

zapisywane w liczniku (dla Count

) lub w rejestrze (dla pozostałych), na pozycji wskazanej

przez indeks Set Index. Np. w module Set

został określony zbiór S1, który zawiera trzy

składniki: T1, T2, T3. Jednostki przechodzące przez system są typu P1, P2, P2, co

zostało określone przez nadanie modułem Assign atrybutu Type o wartości P1, P2, P3.

Jeżeli w module Record pole Tally / Counter Set Name będzie zawierało nazwę S1, a

pole Set Index

nazwę Type, wtedy dane zostaną zapisane w zbiorze S1 na pozycji T1 dla

typu jednostki Type = P1, na pozycji T2 dla Type = P2 i na pozycji T3 dla Type = P3.

Separate posiada dwa zastosowania. Pierwsze to powielanie jednostek w liczbę kopii

określoną w polu # of Duplicates i wysyłanie ich przez dwie gałęzie. Oryginalna jednostka

wychodzi przez wyjście Original, kopie – w tym samym czasie przez wyjście Duplicate.

Jeżeli liczba kopii wynosi np. 3 tzn., że w sumie będą 4 jednostki: 1 oryginalna + 3 kopie.

Każda kopia posiada taką samą nazwę jak oryginał oraz ten sam unikalny numer

zapisany w atrybucie Entity.SerialNumber. Atrybut Entity.CreateTime wskazuje czas

utworzenia kopii, a wartości atrybutów kosztowych i czasowych są dzielone pomiędzy

jednostki w stosunku określonym w polu Percent Cost to Duplicates. Jeśli w polu tym jest

liczba np. 40 i zrobione są dwie kopie, to każda z nich bierze po 20% wartości atrybutów,

a pozostałe 60% przypada jednostce oryginalnej. W trakcie symulacji obok modułu

pojawia się liczba wskazująca, ile jednostek opuściło moduł przez poszczególne wyjścia.

Drugie zastosowanie modułu to rozdzielanie jednostek, wcześniej zgrupowanych

tymczasowo w module Batch

, na pojedyncze sztuki. Grupa może być także utworzona

modułem Pickup. Przedstawiciel grupy zostaje usunięty, a jednostki tworzące grupę

opuszczają moduł w takiej kolejności, w jakiej weszły do modułu Batch. Pole Member

Attributes

określa, w jaki sposób jednostki przejmą atrybuty przedstawiciela, przy czym

d

otyczy to tylko 6 wymienionych poniżej atrybutów oraz wszystkich atrybutów

zdefiniowanych przez użytkownika. Te atrybuty to Entity.HoldCostRate, Entity.Type,

Entity.Picture, Entity.Station, Entity.Sequence, Entity.JobStep

. Dostępne opcje to:

Retain Original Entity Values oznacza, że jednostki odzyskują atrybuty o wartościach

takich, jakie miały przed zgrupowaniem,

Take All Representative Values oznacza, że jednostki przejmują atrybuty o

wartościach takich, jakie miał przedstawiciel,

Take Specific Representative Values oznacza, że wartości atrybutów wymienionych w

polu Attributes

będą takie, jak przedstawiciela, a pozostałe – takie, jak miały przed

zgrupowaniem.

background image


21

Jeśli do modułu wejdzie pojedyncza jednostka lub stała grupa (Permanent), wtedy

wyjdzie z modułu bez rozdzielania, zwiększając tylko o 1 liczbę jednostek

opuszczających moduł. Liczba ta jest widoczna w trakcie symulacji obok modułu.


Basic Process

zawiera także następujące moduły danych:

Entity definiuje różne typy jednostek obecnych w module i ich początkowe symbole

graficzne, które potem mogą być zmienione. Określa także początkowe koszty jednostek.

Jeśli w modelu został dodany nowy typ jednostki, jego nazwa automatycznie pojawi się w

module wraz z domyślnymi ustawieniami. Symbol graficzny jednostki – który będzie

widoczny w trakcie symulacji

– można zmienić, wybierając go z listy rozwijanej w polu

Initial Picture lub poleceniem Edit / Entity Pictures

. Pojawi się okno Entity Picture

Placement

Okno Entity Picture Placement

Z lewej strony okna dostępna jest lista rysunków wraz z podpisami. Te same rysunki

można wybrać w polu Initial Picture. Przyciski Add, Copy i Delete (z lewej strony okna)

pozwalają dodać do tej listy nową pozycję, skopiować lub usunąć już istniejącą.

Dwukrotne kliknięcie na wybranej ikonce lub pustym pasku otwiera okno edytora

graficznego, gdzie można zmienić wygląd obrazka, rysować nowy itp. Edytor zamyka się

przyciskiem Zamknij

(x) w prawym górnym rogu okna, nie ma potrzeby zapisywania.

Zmienić nazwę lub nadać nową można w polu Value. Po zamknięciu okna przyciskiem

OK

należy w polu Initial Picture przypisać jednostce obrazek, wybierając go z listy, jeśli

nazwa nie została zmieniona lub wpisać nazwę, jeśli jest to nowa nazwa, nadana przez

użytkownika, gdyż nie pojawia się ona automatycznie na rozwijanej liście. Z prawej strony

background image


22

okna wyświetla się biblioteka rysunków, czyli zawartość pliku z rozszerzeniem .plb. Inną

bibliotekę otwiera się przyciskiem Open. Można także stworzyć własną bibliotekę

(przycisk New

), a potem zapisać ją (przycisk Save). Rysunek można skopiować z listy do

biblioteki (przyciskiem

) lub z biblioteki na listę (przyciskiem

), zastępując w ten

sposób istniejący symbol lub dodając nowy. Dopiero po upewnieniu się, że zaznaczony

jest ten rysunek, który będzie kopiowany i to miejsce, w które będzie kopiowany, powinno

się nacisnąć przycisk (nie ma opcji Cofnij). Pole Size Factor służy do określania rozmiaru

wyświetlanego symbolu.

Queue stosowany jest w celu zmodyfikowania reguł szeregowania w kolejkach lub

określenia kolejki jako dzielonej (Shared). Jednostki w kolejkach mogą być szeregowane

według zasady FIFO (First In First Out), LIFO (Last In First Out) oraz Lowest / Highest

Attribute Value (

po określeniu nazwy atrybutu w polu Attribute Name). Dzielona kolejka

może być używana przez dwa lub więcej modułów Seize, w których jednostki czekają na

zajęcie tego samego zasobu. Aby to zrobić, należy wybrać tę samą nazwę kolejki w tych

modułach (w polu Queue Name), a w module Queue zaznaczyć opcję Shared. Kolejki

innych modułów nie mogą być dzielone, jest to możliwe tylko dla kolejek modułu Seize.

Można zmienić wygląd kolejki (postać, kolor), dwukrotnie klikając na niej.

Resource definiuje zasoby modelu, którymi mogą być maszyny, ludzie, środki

transportu, linie telefoniczne itp. Liczba dostępnych sztuk zasobu może być stała (opcja

Fixed Capacity

), określona w polu Capacity lub zmieniać się według planu (opcja Based

on Schedule

). Plan należy zdefiniować w module Schedule (pole Type ustawione na

Capacity

), a jego nazwę (Name) wpisać w polu Schedule Name. Pola Busy / Idle / Hour

oraz Per Use

służą do wprowadzania kosztów związanych z zasobem. W polu StateSet

Name

wprowadza się nazwę ustawień stanów zasobu, zdefiniowaną w module StateSet.

Istnieje możliwość określania przerw w pracy zasobu, spowodowanych np.

uszkodzeniami, przerwami. Dokonuje się tego modułem Failure, a nazwę (Name)

wprowadza się w polu Failure Name. Pola Schedule / Failure Rule zawierają trzy opcje

określające sposób postępowania w przypadku, gdy zasób, w chwili, gdy ma być

wyłączony z pracy, jest zajęty:

Wait oznacza, że zmniejszenie liczby sztuk zasobu nastąpi dopiero wtedy, gdy zasób

zostanie zwolniony przez jednostkę. Wtedy też rozpoczyna się odliczanie przerwy

(czas Down Time lub Duration);

Ignore natychmiast zmniejsza liczbę sztuk zasobu ignorując fakt, że zasób jest zajęty.

Zasób jest nieaktywny natychmiast po zwolnieniu go przez jednostkę;

background image


23

Preempt natychmiast przerywa pracę, zmniejsza dostępną liczbę sztuk zasobu i

rozpoczyna odliczanie czasu. Dokończenie obsługi jednostki zostanie podjęte przez

ten sam

zasób na nowo, gdy stanie się on aktywny.

Zmiana symbolu graficznego zasobu

– widocznego w trakcie symulacji – jest możliwa po

wybraniu ikonki Resource (

) z paska narzędzi Animate. Pojawi się okno Resource

Picture Placement, podobne do okna Entity Picture Placement

. Sposób postępowania

jest taki sam, jak przy wyborze symbolu jednostki z tym, że tutaj rysunki należy dobrać do

stanów zasobu. W trakcie symulacji rysunki będą się zmieniać, zgodnie ze zmianą stanu

zasobu (np. zajęty, wolny).

Schedule najczęściej jest używany wraz z modułem Resource do określenia

harmonogramu pracy zasobów (po wybraniu w polu Type opcji Capacity) oraz z modułem

Create

do planowania czasu przybyć jednostek (po wybraniu w polu Type opcji Arrival).

Odwołanie w tych modułach następuje poprzez wybranie w polu Type opcji Based on

Schedule lub Schedule

. W module dostępna jest też opcja Other, która pozwala

definiować czasy opóźnienia i współczynniki związane z czasem. Odwołanie w różnych

modułach następuje za pomocą funkcji SchedValue (Schedule Name). Wpisanie w polu

Scale Factor

liczby różnej od 1 powoduje, że wartości Value (dla opcji Arrival i Other)

zostaną pomnożone przez ten współczynnik. Okresy czasu zostają bez zmian. Np.

współczynnik 1.5 zwiększa wartości o 50%, 0.7 – zmniejsza o 30%. Harmonogram może

być wprowadzony na dwa sposoby:

– edytorem graficznym, który otwiera się po kliknięciu pola Durations. Przeciąganie

myszką z wciśniętym lewym klawiszem po wykresie pozwala w prosty sposób nanieść

całkowite wartości (oś Y) w danych odcinkach czasu (oś X). Pod przyciskiem Options

dostępne są opcje, w tym ustawienia wartości na osiach X i Y;

– po wybraniu opcji Edit via Dialog (kliknięcie prawym klawiszem myszki na pasku

modułu) pojawi się okno dialogowe, gdzie w polu Durations wpisuje się liczby

odpowiadające odcinkom czasu, czyli liczbom na osi X (pole Duration) oraz

wartościom w tych odcinkach czasu, czyli liczbom na osi Y (pole Value). Ten sposób

jest pomocny, gdy wartości nie są liczbami całkowitymi lub są wyrażeniami.

Set jest modułem wykorzystywanym przez wiele innych modułów, zawiera różnego typu

ustawienia dotyczące zasobów (Resource), liczników (Counter), rejestrów (Tally), typów i

symboli graficznych jednostek (Entity Type / Picture

). Pod konkretną nazwą zbioru

(Name

) można zapamiętać wiele elementów danego typu (Members), do których tworzy

się odwołania w innych modułach, wybierając opcję Set i podając nazwę zbioru. Ważna

jest kolejność wpisywania elementów w polu Members, gdyż – wraz z nazwą zbioru –

background image


24

należy podać w polu Selection Rule zasadę pobierania elementów tego zbioru. Np.

Cyclical oznacza cykliczne pobieranie (1

–2–3–1 itd.), Preferred Order – pobranie

pierwszego dostępnego itd. Przykładowo, użycie w module Process zbioru zasobów o

nazwie podanej w polu Set Name (po wybraniu w polu Resources / Type opcji Set i

określeniu sposobu pobierania elementów zbioru) spowoduje, że jednostkom

wchodzącym do modułu zostanie przydzielony zasób według listy Members. Jeśli zbiór

S1

składa się z elementów R1, R2, R3, a pobieranie jest losowe (Random), to jednostka

dostanie zasób R1, R2 lub R3, a w atrybucie o nazwie podanej w polu Save Attribute

zostanie zapisany indeks zasobu, który został przydzielony. Inne typy ustawień można

znaleźć w module Advanced Set.

Variable stosowany jest do określania wymiaru (liczba wierszy Rows i kolumn Columns)

oraz początkowych wartości (Initial Values) zmiennych, definiowanych przez

użytkownika. Zmienne mogą być używane w wyrażeniach różnego typu, można zmieniać

ich wartości przy pomocy modułu Assign, a także odwoływać się do nich w innych

modułach. W trakcie symulacji można śledzić zmiany wartości zmiennej. W tym celu

należy wybrać ikonkę Variable (

) z paska narzędzi Animate i – po ustawieniu

parametrów i zaakceptowaniu ich OK – umieścić symbol na ekranie, klikając i

przeciągając kursor. Pole Clear Option wskazuje, kiedy zmienna ma powracać do

początkowej wartości: wraz z resetowaniem statystyk (Statistics), systemu (System) lub

nigdy (None).

2.2.

Charakterystyka modułów z panelu Advanced Process

Advanced Process jest rozszerzeniem panelu Basic Process

. Zawiera moduły, które

wprowadzają do budowanego modelu więcej szczegółów. W jego skład wchodzą

następujące moduły blokowe:

Delay opóźnia jednostki przez okres czasu podany w polu Delay Time. Wartość

opóźnienia może być określona stałą liczbą, wyrażeniem, rozkładem itp. Build Expression

(kliknięcie prawym klawiszem myszki w polu Delay Time) ułatwia wprowadzanie wyrażeń,

które mogą być dowolnie złożone, zawierać zmienne, atrybuty itp. Czas będzie doliczany

do atrybutu wybranego w polu Allocation

, w którym poszczególne opcje mają takie samo

znaczenie, jak w module Process

. Zamiast modułu Delay można użyć modułu Process,

wybierając w polu Action opcję Delay.

background image


25

Dropoff wydziela daną liczbę jednostek (określoną w opcji

Quantity

) z przychodzącej grupy jednostek i wysyła je przez wyjście

Members

. Pozostałe jednostki wciąż tworzą grupę (o mniejszej

liczbie elementów) i wraz z przedstawicielem są przesuwane do

wyjścia Original. Pole Starting Rank określa, od której jednostki w

grupie należy zacząć odrzucanie, np. wydzielenie 4 jednostek

począwszy od 3 oznacza, że zostaną wybrane jednostki zajmujące

3, 4, 5 i 6 pozycję w grupie. Moduł wydziela jednostki tylko z

tymczasowych grup (Temporary), utworzonych w module Batch,

grup

y mogą być także wynikiem działania modułu Pickup. Jeżeli do

modułu wejdzie pojedyncza jednostka lub grupa połączona na stałe

(Permanent

), to zostaje przesunięta do wyjścia Original bez

żadnych zmian. Wszystkie atrybuty przedstawiciela przypisywane

są wydzielanym jednostkom według zasad zdefiniowanych w polu Member Attributes,

poszczególne opcje mają takie samo znaczenie, jak w module Separate. Różnica

pomiędzy Separate i Dropoff jest wyraźna: Separate rozdziela tymczasową grupę na

pojedyncze jednostki, a przedstawiciela usuwa. Dropoff

oddziela od grupy określoną

liczbę jednostek, a resztę grupy pozostawia z przedstawicielem. Pozostała grupa

powinna być rozdzielona przed wyjściem z modelu w module Separate.

Hold jest modułem przetrzymującym jednostki w wybranej kolejce. Warunek ich

zwolnienia określony jest w polu Type, które ma trzy opcje:

– opcja Wait for Signal zwalnia określoną liczbę jednostek w chwili, gdy Hold odbierze

sygnał pochodzący z modułu Signal, o wartości podanej w polu Wait for Signal. Liczba

wypuszczonych jednostek jest zawarta w polu Limit, w module Hold lub Signal.

Kolejne jednostki zostaną zwolnione z kolejki po otrzymaniu następnego sygnału;

– opcja Scan for Condition rozpoczyna zwalnianie jednostek w chwili, gdy wyrażenie

określone w polu Condition staje się prawdziwe i wypuszcza je dotąd, aż wyrażenie

nie stanie się ponownie fałszywe. Następne jednostki będą zwolnione, gdy wyrażenie

znów będzie prawdziwe. Wyrażenie o wartości liczbowej jest prawdziwe dla każdej

wartości różnej od zera. Zwalnianie jednostek może zależeć od stanu zasobu (zajęty /

wolny), liczby jednostek w danej kolejce, wartości zmiennej itp.

– opcja Infinite Hold powoduje bezterminowe trzymanie jednostek w kolejce. Ich

zwolnienie następuje przy użyciu modułu Remove.

Jednostka

wchodząca do modułu jest przesuwana dalej, jeżeli zaistniał warunek jej

zwolnienia. W przeciwnym przypadku jest umieszczana w kolejce o nazwie podanej w

background image


26

polu Queue Name. Typ kolejki (pole Type

) może być zdefiniowany przy pomocy atrybutu,

wyrażenia lub zbioru określonego w module Advanced Set.

Match jest modułem posiadającym taką samą liczbę wejść, wyjść i kolejek. Liczbę tę

(z zakresu 2

–5) definiuje użytkownik w polu Number to Match. Jednostki wchodzące do

modułu są umieszczane w kolejce, która jest przypisana do danego wejścia. Moduł

wypuszcza jednocześnie po jednej sztuce z każdej kolejki, każdą innym wyjściem, przy

czym można dołączyć kilka wyjść do jednego modułu. Wypuszczanie jednostek zachodzi

każdorazowo, gdy w każdej kolejce czeka co najmniej jedna jednostka. Match może

także wypuszczać jednostki o określonych atrybutach (opcja Based on Attribute), wtedy w

każdej kolejce musi być co najmniej jedna jednostka o takim atrybucie, aby moduł mógł je

wypuścić.

Pickup pobiera określoną (w polu Quantity) liczbę jednostek ze wskazanej kolejki i

dodaje je na koniec grupy wchodzącej do modułu. W ten sposób grupa posiada więcej

członków, a w kolejce czeka mniej jednostek. Grupa powinna być tymczasowa (opcja

Temporary w module Batch

). Kolejka, z której pobierane są jednostki (począwszy od

pozycji o numerze podanym w polu Starting Rank

), jest dowolną kolejką w modelu. Jeżeli

w kolejce nie ma jednostek lub jest ich za mało, a do modułu Pickup wchodzi grupa

jednostek, to zostanie wygenerowany komunikat o błędzie. Można temu zapobiec

używając modułu Decide do sprawdzania, czy w kolejce jest potrzebna liczba jednostek

(zmienna NQ (Queue Name)

zwraca liczbę jednostek w kolejce o nazwie Queue Name).

Jednostki przyłączone do grupy stają się jej pełnoprawnymi członkami, można je usunąć

tak samo, jak inne elementy grupy (modułem Separate, Dropoff). Zastosowanie modułu w

stosunku do stałej grupy (Permanent) spowoduje pojawienie się komunikatu o błędzie,

gdyż jednostki można przyłączać tylko do tymczasowej grupy. Jeśli do modułu wchodzi

pojedyncza jednostka, to zostaje przekształcona w przedstawiciela, a jednostki są

przyłączane do niej, ale zbudowana w ten sposób grupa liczy tylu członków, ilu zostało

pobranych z kolejki przez Pickup

. Różnica pomiędzy modułami Batch i Pickup jest

następująca: jednostka wchodząca do Pickup może zostać przedstawicielem grupy,

jednostka wchodząca do Batch nie może zostać przedstawicielem, a jedynie członkiem

grupy. Moduł Pickup nie może być umieszczany w modelach hierarchicznych, a także w

podmode

lu modułu Process.

ReadWrite umożliwia czytanie danych z klawiatury lub z pliku oraz zapisywanie danych

do pliku lub wyświetlanie danych na ekranie. Jeżeli dane są zapisywane do pliku lub

odczytywane z pliku, to plik ten musi być zdefiniowany w module File, gdzie określa się

background image


27

jego format oraz nazwę pliku używaną przez Arenę i nazwę dyskową pliku. Wczytane

dane są przydzielane do atrybutów i zmiennych, wyszczególnionych w oknie modułu

ReadWrite, w polu Assignments

. Moduł czyta tylko dane liczbowe, inny typ danych

(np. tekst) jest traktowany jako „0”. Dane przeznaczone do wyświetlania na ekranie

wyświetlane są w oknie Command (okno wyświetla się poleceniem Run / Run Control /

Command

). Również dane wprowadzane z klawiatury wypisywane są w oknie Command.

Release jest stosowany w celu zwolnienia zasobu (np. maszyny po zakończonej

obróbce), który wcześniej został przywłaszczony przez jednostkę przy pomocy modułu

Seize lub Process

. Zwolniony zasób może być natychmiast zajęty przez następną

jednostkę z kolejki. Moduł umożliwia jednoczesne zwolnienie kilku zasobów. Zwalnianie

odbywa się w takim porządku, w jakim zasoby były zajmowane. Zwalniany zasób może

być elementem zbioru, utworzonego modułem Set. Wtedy należy podać, którego zasobu

dotyczy zwolnienie: najwcześniej zajętego, ostatnio zajętego (opcja First / Last Member

Seized

), czy określonego elementu (Specific Member). Zwalnianie zajętego zasobu

umożliwia również moduł Process (działanie zawierające opcję Release).

Remove usuwa jednostkę z wyznaczonej pozycji (podanej w polu Rank of Entity) w

danej kolejce i wysyła ją przez wyjście Removed Entity. Jednostka, która weszła do

modułu i spowodowała tę akcję jest przesuwana dalej przez wyjście Original. Jednostka

przeznaczona do usunięcia może być wyznaczona za pomocą modułu Search, który

wyszuka w kolejce jednostkę o określonej wartości atrybutu, czasie czekania w kolejce

itp. Moduł Remove nie może być umieszczany w modelach hierarchicznych, a także w

podmodelu modułu Process.

Search jest modułem wykonującym następujące działania:

– wyszukuje w kolejce (opcja Search a Queue) lub w tymczasowej grupie (opcja Search

a Batch

) jednostkę, której pozycja spełnia wyrażenie podane w polu Search Condition.

Wtedy zmienna J

wskazuje pozycję pierwszej jednostki, która spełnia wyrażenie lub 0,

jeśli żadna jednostka w zadanym przedziale nie spełnia wyrażenia. Najczęściej

wyrażenie zawiera atrybuty, które mają wartość atrybutów jednostek w danej kolejce

lub grupie. Użycie zmiennych NQ lub NG, które zwracają – odpowiednio – bieżącą

lic

zbę jednostek w kolejce lub grupie, pozwala przeszukiwać całą kolejkę lub grupę.

Wtedy początkową i końcową wartość przedziału można określić np. jako 1 i NQ.

Przykładowo, podanie krańców przedziału NG i 1 oraz wyrażenia Entity.Type = 2

spowoduje, że grupa będzie sprawdzana „wstecz” w poszukiwaniu jednostki drugiego

typu. Zmienna J

wskaże pozycję pierwszej jednostki tego rodzaju od końca grupy;

background image


28

– wyszukuje wartość wyrażenia podanego w polu Search Condition (opcja Search an

Expression

), które powinno zawierać zmienną J. Wtedy J wskazuje pierwszą wartość

indeksu, który spełnia wyrażenie lub 0, jeżeli w zadanym przedziale wyrażenie nie jest

spełnione. Np. podanie wartości 2 i 7 oraz wyrażenia Inventory Level (J) < 250

spowoduje poszukiwanie pozycji w zmiennej Inventory Level

, począwszy od drugiego

wiersza, która ma wartość mniejszą od 250. Zmienna J wskaże, na której pozycji jest

taka wartość lub 0, jeśli wszystkie wartości na pozycjach od 2 do 7 są większe lub

równe 250. Zmienna Inventory Level powinna być jednowymiarową zmienną, która ma

co najmniej 7 wierszy.

Wyrażenia mogą być dowolnie złożone, także granice przedziału można podawać w

postaci wyrażenia. Wyszukiwanie prowadzone jest w przedziale [Starting Value, Ending

Value]

. Wartość początkowa może być mniejsza od końcowej (przeszukiwanie „w przód”)

lub większa (przeszukiwanie „wstecz”). Kiedy jednostka wchodzi do modułu, zmienna J

przyjmuje wartość Starting Value i wyrażenie Search Condition jest sprawdzane. Jeżeli

wyrażenie zostało spełnione, następuje koniec wyszukiwania, zmienna J przyjmuje

bieżącą wartość, a jednostka wychodzi wyjściem Found. Jeżeli osiągnięto koniec

przedziału przeszukiwania, a wyrażenie nie zostało spełnione, to zmienna J wskazuje 0,

a jednostka wychodzi wyjściem Not Found. W przypadku, gdy wyrażenie zawiera funkcję

MIN lub MAX

, przeszukiwany jest cały przedział. Jeśli więcej niż jedna pozycja ma taką

samą minimalną / maksymalną wartość, to zmienna J wskazuje pierwszą z nich. Moduł

Search

może być stosowany np. do wyszukiwania jednostek w kolejce, które będą

usuwane modułem Remove lub przyłączane do grupy modułem Pickup.

Seize przydziela jednostce jeden lub kilka zasobów (np. maszynę, operatora). Jeśli

zasób nie jest w danej chwili dostępny, jednostka czeka w kolejce o nazwie Queue

Name,

aż zostanie zwolniony przez inną jednostkę i wtedy natychmiast przywłaszcza go

dla siebie. Pole Allocation

określa, do jakiego atrybutu jednostki zostanie dopisany koszt

używania zasobu (opis atrybutów zawarty jest w opisie modułu Process). Jeżeli jednostki

czekają w kilku modułach na ten sam zasób, wtedy o kolejności przydzielania decyduje

wyższy priorytet (podany w polu Priority) lub dłuższy czas czekania w kolejce (dla kolejki

FIFO

). Zajmowany zasób można zdefiniować podając jego nazwę w polu Resource

Name

lub nazwę zbioru, z którego będzie pobierany (Set Name). Można także podać

atrybut lub wyrażenie określające, który zasób ma być zajęty. Zbiór należy zdefiniować w

module Set

. Jeżeli użyto modułu StateSet do zdefiniowania stanów zasobu i przypisano

je w module Resource (pole StateSet Name

) do danego zasobu, to w modelu należy

określić, która nazwa odpowiada danemu stanowi zasobu (np. stan, kiedy zasób

obsługuje jednostkę można nazwać Working). Poszczególne nazwy należy przypisać

background image


29

przy pomocy modułu Assign. Innym sposobem jest wpisanie tej nazwy w polu Resource

State

. W ten sposób zostanie nazwany stan, w którym zasób jest zajęty przez jednostkę.

Zasób można zwolnić modułem Release lub Process (opcja Release).

Signal wysyła sygnał do każdego modułu Hold umieszczonego w modelu. Każda

jednostka wchodząca do modułu powoduje wysłanie sygnału o wartości podanej w polu

Signal Value

. Po otrzymaniu sygnału każdy moduł Hold – który ma zaznaczoną opcję

Wait for Signal

i czeka na sygnał o takiej wartości (określonej w polu Wait for Value) –

zwalnia podaną liczbę jednostek z kolejki o nazwie Queue Name. Liczbę zwalnianych

jednostek (pole Limit

) definiuje się w module Hold lub Signal. Sygnał może mieć dowolną

wartość (np. liczba, wyrażenie), każda jednostka wchodząca do modułu może wysyłać

inny sygnał, np. oparty na atrybucie jednostki. Użycie modułu w podmodelu modułu

Process

spowoduje wysłanie sygnału do wszystkich modułów Hold, bez względu na ich

pozycję w hierarchii.

Store jest modułem używanym w celu zdefiniowania miejsca pobytu oraz pokazania

jednostek w trakcie animacji, jeśli znajdują się one w miejscu, gdzie nie można ich

uwidocznić, np. podlegają opóźnieniu w module Delay. Aby pokazać, gdzie są jednostki,

należy dodać do animacji symbol Storage (ikonka

w pask

u narzędzi Animate) i nadać

mu w polu Identifier

taką nazwę, jaka widnieje w module Store, w polu Storage Name.

Symbol Storage

ma postać linii, podobnie jak kolejki. Jednostki wchodzące do modułu

Store

są umieszczane w Storage, licznik stanu Storage zostaje zwiększony o 1, a

jednostka przesuwa się do dalszych modułów. Jednostka jest widoczna w Storage do

czasu, aż przejdzie do modułu, który ma zdolność ukazywania jednostek. Moduł Unstore

jest konieczny, aby zmniejszyć stan licznika, może także wydobywać jednostki ze

Storage

. Liczbę jednostek w określonym Storage zwraca wyrażenie NSTO (Storage

Name), gdzie NSTO

jest zmienną. Moduł może być stosowany w podmodelu modułu

Process, przy czym Store i Unstore

nie muszą być na jednym poziomie w hierarchii

modelu.

Unstore stosowany jest wraz z modułem Store, który umieszcza jednostki w Storage w

celu pokazania ich miejsca pobytu. Moduł zmniejsza stan licznika Storage, a także

przesuwa jednostki do dalszych modułów. Pole Type określa typ Storage, z którego są

wydobywane jednostki. Opcja Default

oznacza, że jednostki wychodzą z ostatnio

zajmowanego Storage. Opcja Storage

wymaga podania określonej nazwy, a Set – nazwy

zbioru Storage zdefiniowanego w module Set. Opcje Attribute i Expression

wyznaczają

Storage na podstawie

atrybutu lub wyrażenia. Wszystkie jednostki, które zostały dodane

background image


30

do Storage

, powinny być usunięte z niego przed wyjściem z modelu. Moduł może być

stosowany w podmodelu modułu Process, przy czym Store i Unstore nie muszą być na

jednym poziomie w hierarchii modelu.

Advanced Process

zawiera także następujące moduły danych:

Advanced Set definiuje typy zbiorów elementów, których nie ma w module Set – kolejki

(Queue), magazyny (Storage) i inne (Other

). Jego działanie jest analogiczne jak modułu

Set. Elementy zbioru Other

muszą być takiego samego typu, np. atrybuty, zmienne. Nie

można pod jedną nazwą zapamiętać elementów różnego typu.

Expression definiuje wyrażenia, do których można się odwoływać w innych modułach

przez podanie ich nazwy. Jest to użyteczne tam, gdzie pewna wielkość (np. dana

rozkładem, złożonym wyrażeniem) występuje w kilku miejscach. Jeśli wystąpi

konieczność jej zmiany, wystarczy to zrobić w module Expression, a nie w każdym

module, w którym występuje. Wyrażenie może zawierać zmienne, atrybuty, operatory

arytmetyczne i logiczne, rozkłady statystyczne, a także inne wyrażenia itp. Pola Rows i

Columns

pozwalają zdefiniować wielowymiarowe wyrażenia. Przykładowo, można

zdefiniować wyrażenie o nazwie WorkerTime, mające kilka wierszy o danych

wartościach, które określają czas opóźnienia w procesie. Zasób (Worker) jest zajmowany

w oparciu o zbiór pamiętany w module Set. Jeżeli indeks zajmowanego zasobu jest

zachowywany, można poprzez niego odwoływać się do czasu opóźnienia, przypisując go

do danego zas

obu. Używając nazwy indeksu z pola Save Attribute – np. Worker# –

można wtedy czas opóźnienia zdefiniować jako WorkerTime (Worker#).

Failure jest modułem używanym wraz z zasobami, pozwala definiować awarie, przeglądy

i inne przerwy, które powodują przestoje w pracy zasobu. Wykorzystywany jest w

modułach Resource i StateSet, odwołanie następuje poprzez podanie nazwy w polu –

odpowiednio

Failure Name i AutoState or Failure. Przerwy można definiować jako

Count lub Time. Opcja Count

oznacza, że przerwa nastąpi po obsłużeniu przez zasób

określonej liczby sztuk jednostek (podanej w polu Count) i będzie trwać przez okres

czasu podany w polu Down Time. Opcja Time

oznacza, że pomiędzy przerwami upływa

okres czasu podany w polu Up Time, a przerwa trwa przez okres c

zasu określony w polu

Down Time

. Wszystkie czasy podawane mogą być liczbami, rozkładami, wyrażeniami itp.

W polu Uptime in this State only

określa się, które stany zasobu są brane pod uwagę

przy zliczaniu czasu pomiędzy przestojami. Pozwala to np. zliczać czas tylko wtedy, gdy

zasób jest zajęty. Jeżeli nie ma podanych nazw, to brane są pod uwagę wszystkie stany.

background image


31

Nazwa stanu zasobu musi być określona w module StateSet lub być podstawowym

stanem zasobu (Busy, Idle, Inactive, Failed).

File służy do definiowania plików, które są używane przez moduł ReadWrite. Pole Name

określa nazwę pliku używaną przez Arenę, przez którą moduł ReadWrite będzie się

odwoływał do pliku. Natomiast pole Operating System Name wskazuje nazwę pliku na

dysku (jeżeli plik do odczytu znajduje się w innym katalogu niż model, to należy podać

pełną ścieżkę). Pliki z zapisywanymi danymi tworzone są we wskazanym miejscu na

dysku lub w katalogu bieżącym modelu (jeżeli nie podano ścieżki).

Pliki są zapisywane w trzech formatach:

Unformatted jest odpowiedni do przekazywania wyników symulacji do innych modeli

lub programów. Plik taki nie jest standardowym plikiem tekstowym, nie można go

otworzyć edytorem tekstu, czy wydrukować;

Free Format – plik zapisany w tym formacie jest zbiorem znaków ASCII. Wartości

zapisane w pliku o takim formacie rozdzielane są przecinkami lub znakami odstępu;

WKS (worksheet) – format pliku binarnego używany przez arkusz kalkulacyjny

LOTUS

. Pliki zapisane w tym formacie są także czytane przez program Excel.

Pole End of File Action

wskazuje, jakie działanie ma być podjęte w przypadku, gdy przy

czytaniu pliku napotkany zostanie znak końca pliku. Dostępne opcje to:

Dispose – usuwa jednostkę, przerywa czytanie i zamyka plik,

Rewind – po każdorazowym napotkaniu końca pliku czytanie jest rozpoczynane od

początku,

Error – przerywa symulację i sygnalizuje błąd,

Ignore – pozwala zdefiniować własny sposób reakcji na koniec pliku. Wszystkie

zmienne odczytane w module ReadWrite

ustawiane są na 0. Przy użyciu tej opcji za

modułem ReadWrite (który wykorzystuje moduł File) powinien być umieszczony moduł

Decide

w celu sprawdzenia wartości zmiennych. Jeżeli mają wartość 0, to

podejmowane jest odpowiednie działanie.

StateSet pozwala definiować użytkownikowi stany zasobu, które mogą być przypisane

do podstawowych stanów zasobu (Busy, Idle, Inactive, Failed) lub być nowymi stanami

dla zasobu, np. stan nazwany Working

może odpowiadać stanowi Busy, stan zasobu

czekającego na operatora można nazwać Waiting for Operator. Każdą nazwę stanu

zasobu nal

eży przydzielić w polu AutoState or Failure do nazwy auto – stanu lub nazwy

przestoju (Failure Name

), można je także przypisać w modelu, odwołując się do nazw

stanów w module Seize (pole Resource State). Ustawień można także dokonywać w

module Assign (polecenie Type / Other

). Moduł StateSet jest wykorzystywany przy

background image


32

definiowaniu zasobów w module Resource (pole StateSet Name). Przykładowo, można

nazwać wszystkie stany, w których może się znaleźć zasób, przypisać je w odpowiednich

miejscach w module, a następnie zdefiniować statystyki w module Statistic, otrzymując w

ten sposób informacje o czasie, częstości itp. pozostawania zasobu w każdym ze stanów.

Statistic jest modułem używanym do tworzenia dodatkowych statystyk, zapisywanych w

trakcie symulacji oraz do

tworzenia wyjściowych plików danych (Output File), które

zawierają każdą obserwację, nie tylko statystyki sumaryczne (np. średnia, maksymalna

wartość). Pliki takie można otworzyć w Output Analyzer (jeśli jest to plik binarny z

rozszerzeniem .dat) lub w innych programach, np. edytory tekstu, Excel

itp. (jeśli jest to

plik tekstowy z rozszerzeniem .csv). Zaznaczenie w Tools / Options / Run Control opcji

Write Statistics Output Files as Text

spowoduje, że plik będzie zapisywany jako tekst

(domyślnie ustawiony jest zapis binarny).

W module dostępne są statystyki następujących typów:

Time – Persistent służy do określania wartości średnich, minimalnych czy

maksymalnych, z uwzględnieniem czasu. Na przykład, wartości średnie w

statystykach Time

– Persistent obliczane są jako średnie ważone, gdzie wagami są

proporcje czasu, przez jakie zmienne przyjmują określone wartości. Przykładem może

być średnia liczba części czekających w kolejce. Wartość ta będzie wyznaczana z

zależności:

T

T

dt

t

Q

0

/

)

(

, gdzie Q(t) j

est liczbą części w kolejce w chwili czasu t.

Tally służy do określania wartości średnich, minimalnych lub maksymalnych z

określonej liczby wartości. Na przykład, średni czy maksymalny czas przebywania w

systemie należy do statystyki typu Tally, ponieważ określa on odpowiednio wartość

średnią i maksymalną czasu przebywania w systemie np. 5 części, które opuściły

system w czasie symulacji.

Counter sumuje określoną wielkość w liczniku o nazwie Counter Name. Typowe

zastosowanie to zliczanie liczby wystąpień (np. liczba jednostek przechodząca przez

dane miejsce), czasu (np. łączny czas czekania wszystkich jednostek w danej

kolejce). Pole Limit

pozwala zdefiniować warunek przerwania repliki symulacji.

Osiągnięcie przez licznik warości Limit przerywa symulację. Pole Initialization Option

określa sposób zerowania licznika: wraz z rozpoczęciem każdej replikacji (opcja Yes),

razem z innymi statystykami (opcja Replicate

) lub sumowanie wartości z każdej

replikacji, bez zerowania licznika (opcja No). Opcja jest stosowana

z modułem Record.

Output zapisuje ostateczne wyniki każdej replikacji w przypadku, gdy jest ich więcej

niż jedna.

background image


33

Frequency stosowany jest w celu zapisywania częstości występowania danej

wielkości, określonej wyrażeniem podanym w polu Expression (opcja Value) lub

stanami zasobu (opcja State). Pole Categories

pozwala zdefiniować stałą wartość

(Constant

) lub przedziały (Range) oraz podać nazwy (Category Name), które

zidentyfikują te wartości w raporcie. Pole Category Option pozwala na zawarcie lub nie

danej

kategorii w ograniczonych kolumnach raportu. Przykładowo, wyrażeniem jest

liczba jednostek w kolejce, które czekają na paletach, po 6 na każdej. Przedział 0–6

ma nazwę 1 Paleta, przedział 7–12 – 2 Palety itd. W ten sposób symulacja wykaże,

jak często jest potrzebna dana liczba palet.

Pole Report Label

zawiera nazwę, pod którą będzie można znaleźć tę statystykę w

końcowym raporcie. Pole Output File określa nazwę wyjściowego pliku danych (np.

nazwa.dat

), do którego można zapisać dane. Jeżeli nie podano nazwy, plik nie jest

tworzony. Wyjściowe pliki danych zawierają listę każdej wartości zaobserwowanej w

trakcie symulacji (dla statystyk Counter i Tally

) lub listę zmian wartości danej wielkości

(dla statystyk Time

Persistent i Frequency). Poszczególne rekordy zawierają dwie

wielkości – wartość i czas jej wystąpienia. Można zbierać w wyjściowych plikach

statystyki, które są zdefiniowane w innych modułach, np. w Record. W tym celu należy

utworzyć nową statystykę odpowiedniego typu w module Statistic i wybrać w polu

Counter / Tally Name

nazwę z rozwijanej listy.

Storage definiuje nazwy miejsc (Storage), w których można uwidocznić jednostki

podczas animacji, jeżeli przechodzą przez moduły, które nie mają tej możliwości. Moduły

odwołujące się do schowków automatycznie zapisują w tym module ich nazwy, więc jest

on potrzebny głównie wtedy, gdy nazwa schowka występuje w wyrażeniu lub w atrybucie.

background image


34

2.3.

Charakterystyka modułów z panelu Advanced Transfer

Advanced Transfer

zawiera moduły, które definiują transport jednostek przez system,

używając w tym celu różnego typu urządzeń, klasyfikowanych ogólnie jako przenośniki

taśmowe (Conveyor) i różnego rodzaju ruchome przenośniki – np. wózki, ciężarówki, ludzie

(Transporters)

. W skład panelu wchodzą następujące moduły blokowe:

Enter definiuje stacje (opcja Station) o nazwie Station Name lub zbiory stacji (opcja Set)

o nazwie Set Name

, do których jednostka jest transportowana. Można także zdefiniować

czas (Delay

), potrzebny do wyładowania jednostki ze środka transportu, a także zwolnić

środek transportu (wózek – opcja Free Transporter, taśmę – opcja Exit Conveyor, inny

zasób – opcja Release Resource) w polu Transfer In, jeżeli brał on udział w

przemieszczaniu jednostek. Pole Allocation

określa atrybut, do którego przypisuje się

c

zas i koszt opóźnienia (atrybuty opisane są w opisie modułu

Process). Miejsca przeznaczenia transportowanych jednostek

określa się za pomocą połączeń modułów lub przy użyciu modułów

przemieszczających jednostki (np. Leave, Route, Convey,

Transport), gdzie w polu Destination Type

określa się sposób

wyboru stacji. Enter

można zastąpić modułami StationDelay

Free (Exit, Release). Enter

może otwierać sekwencję modułów, np.

Enter

ProcessLeave.

Leave jest używany w celu przydzielania środka transportu do

jednostki, przesunięcia go do miejsca pobytu jednostki, a następnie

przewiezienia jednostki do wybranej stacji lub do modułu, z którym

jest połączony. Jednostka wchodząca do modułu może czekać w

kolejce o nazwie Queue Name

na przydzielenie jej środka

t

ransportu (wózka – opcja Request Transporter, taśmy – opcja Access Conveyor, innego

zasobu

– opcja Seize Resource), a następnie jest przekazywana do stacji przeznaczenia.

Stację określa się w polu Station Type, przy czym opcja Station wymaga podania nazwy

stacji, opcje Attribute i Expression

– podania atrybutu lub wyrażenia charakteryzującego

stację. Opcja Sequence wysyła jednostki do stacji zgodnie z ich marszrutą zdefiniowaną

w module Sequence

. Sposób przemieszczenia jednostki określa się w polu Connect

Type

. Użycie opcji Convey lub Transport wymaga zdefiniowania – odpowiednio –

przenośnika taśmowego i jego segmentów w modułach Conveyor i Segment lub

transportera i pokonywanych przez niego odległości w modułach Transporter i Distance.

Użycie transportera umożliwia pokazanie podczas animacji, jak jednostka załadowana

np. na wózek, samochód jest przewożona do następnej stacji. Istnieje możliwość

background image


35

zdefiniowania czasu (Delay

), potrzebnego na załadowanie jednostki na wózek, taśmę itp.

Pole Allocation

określa atrybut, do którego przypisuje się czas i koszt opóźnienia (opis

atrybutów zawarty jest w opisie modułu Process). Pole Priority pozwala ustawić priorytet,

z jakim jednostki będą zajmować środek transportu, na który czekają jednostki także w

innym module. Jeśli jednostka czeka na przydzielenie jej transportera (opcja Request

Transporter w polu Transfer Out

), należy podać kryterium wyboru, który spośród kilku

dostępnych pojazdów o podanej nazwie (jeżeli jest ich więcej niż jeden) ma być wybrany.

Dostępne są następujące możliwości:

Cyclical – wybiera cyklicznie (1–2–3–1–2–3) pomiędzy wszystkimi pojazdami,

Random – wybiera losowo,

Preferred Order – przydziela pierwszy wolny pojazd z najniższym numerem,

Specific Member – wybiera pojazd określony atrybutem podanym w polu Set Index,

Largest Distance – przydziela transporter będący najdalej od żądającej jednostki,

Smallest Distance – przydziela transporter będący najbliżej żądającej jednostki.

Leave

można zastąpić modułami Request (Access, Seize) DelayTransport (Convey,

Route). Leave

jest często ostatnim ogniwem, zamykającym sekwencję modułów, np.

Enter

ProcessLeave.

PickStation jest modułem wybierającym stację, do której będzie transportowana dana

jednostka. Wybór dokonywany jest w oparciu o minimalną lub maksymalną (opcja w polu

Test Condition

) liczbę jednostek czekających w kolejce danej stacji (Number in Queue)

lub liczbę jednostek transportowanych do stacji (Number En Route to Station) lub liczbę

zajętych zasobów przez inne jednostki w stacji (Number of Resources Busy) lub w

oparciu o zdefiniowane wyrażenie (Expression). Jeżeli zaznaczono więcej niż jedną opcję

w polu Selection Based On

, wtedy liczba jednostek z zaznaczonych opcji sumuje się, a

otrzymana suma jest minimalizowana lub maksymalizowana. Pole Stations definiuje,

jakie stacje, kolejki, zasoby i wyrażenia brane są pod uwagę. Moduł umożliwia też przesył

jednostek do wybranej stacji w sposób określony w polu Transfer Type. Jeżeli

przemieszczenie jednostek odbywa się za pomocą taśmy lub wózka (opcja Convey lub

Transport

), to jednostka przed wejściem do modułu powinna przywłaszczyć sobie ten

środek transportu (np. w module Access, Request). Opcja Connect wymaga użycia po

module PickStation

modułu transportującego jednostki, np. Transport, Route.

Route przemieszcza jednostki do kolejnej stacji, określonej w polu Destination Type

(opcje dostępne w tym polu opisane są w module Leave). Istnieje możliwość

zdefiniowania w module czasu transportu (pole Route Time). Route

– podobnie jak inne

moduły, np. Leave – transportuje jednostki, ale różnica pomiędzy nimi jest wyraźnie

background image


36

widoczna w trakcie animacji. Route

powoduje, że jednostki poruszają się same od stacji

do stacji, podczas gdy inne moduły, używające środka transportu zdefiniowanego w

module Transporter,

mają możliwość przedstawiania jednostek przewożonych danym

środkiem transportu, np. jednostka przemieszcza się od stacji do stacji załadowana na

ciężarówkę, wózek. Route jest ostatnim elementem w sekwencji modułów, nie można do

niego dołączyć innych modułów.

Station definiuje stację (opcja Station) lub zbiór stacji (opcja Set), do których jednostki są

transportowane. Nazwa stacji (Station Name) jednoznacznie identyfikuje miejsce, do

których można przesyłać jednostki. Funkcję modułu Station zawiera również moduł Enter.

Używając modułu transportu (np. Route, Leave) należy użyć także Station (lub Enter),

aby zdefiniować miejsca, do których jednostki będą przemieszczane. Moduł często jest

wykorzystywany w tych modelach, w których jednostki poruszają się według różnych

marszrut przez system, gdyż w prosty sposób definiuje miejsca, do których można wysłać

jednostki, np. za pomocą opcji Sequence.

Access przydziela jednostce wymaganą liczbę miejsca na przenośniku taśmowym o

nazwie Conveyor Name

po to, aby mogła być przekazana do miejsca przeznaczenia.

Jednostka czeka w kolejce, aż zostanie jej przydzielone miejsce na taśmie. Rodzaj kolejki

określa się w polu Queue Type. Rozmiar wymaganego miejsca może być określony

konkretną wartością liczbową w polu # of Cells lub atrybutem przypisanym wcześniej do

jednostki (np. w module Assign

) wskazującym, ile miejsca na przenośniku wymaga

jednostka.

Convey przesuwa jednostki umieszczone na przenośniku taśmowym o nazwie Conveyor

Name

do ich miejsca przeznaczenia, określonego w polu Destination Type. Czas

transportu zależy od prędkości taśmy i odległości między stacjami, wielkości te są

definiowane w module Conveyor i Segment

. Zanim jednostka będzie przewieziona, musi

mieć przydzielone miejsce na taśmie, np. przy pomocy modułu Access.

Exit zwalnia miejsce na taśmie o nazwie Conveyor Name, jeśli jednostka dotarła do

miejsca przeznaczenia. Domyślnie zwolniona zostaje taka ilość miejsca, jaka została

zajęta. W przeciwnym przypadku należy ilość zwalnianego miejsca określić w polu # of

Cells

. Jeżeli inne jednostki czekają w tej stacji na przydzielenie miejsca na przenośniku,

może być ono przydzielone natychmiast po zwolnieniu go przez inną jednostkę.

background image


37

Start zmienia stan przenośnika z nieaktywnego na aktywny, który to stan został

ustaw

iony przez moduł Stop lub przez początkowe ustawienia symulacji. Zmiana

prędkości taśmy jest możliwa przy każdym użyciu tego modułu (w polu Velocity), a także

za pomocą zmiennej VC (Conveyor). Jednostki znajdujące się na uruchamianej taśmie

pozostają na tych miejscach, które zajmowały w chwili jej zatrzymania.

Stop zatrzymuje aktywny przenośnik, zmieniając jego stan na nieaktywny. Ponownie

można go uruchomić modułem Start lub przez początkowe ustawienia symulacji.

Wszystkie jednostki w chwili zatrzymania t

aśmy pozostają na swoich miejscach, także po

uruchomieniu taśmy nie zmieniają miejsca.

Activate zwiększa liczbę dostępnych środków transportu, uruchamiając transportery

zatrzymane modułem Halt lub aktywując te, które początkowo były zdefiniowane jako

nie

aktywne. Aktywowany transporter może być natychmiast przydzielony jednostce.

Pozostawienie pustego pola Unit Number

oznacza, że zostaje uruchomiony środek

transportu o najmniejszym numerze i nazwie Transporter Name.

Allocate przydziela jednostce środek transportu o nazwie Transporter Name, ale nie

przemieszcza go do miejsca pobytu jednostki (czyni to moduł Move). Jeśli jest więcej, niż

jeden dostępny transporter, w polu Selection Rule wskazuje się, według jakich reguł będą

one przydzielane. Numer przydzielonego transportera przechowywany jest w atrybucie,

którego nazwę określa się w polu Save Attribute. Jeżeli nie ma żadnego dostępnego

transportera, jednostki czekają w kolejce zdefiniowanej w polu Queue Type. Allocate i

Move

mogą zastąpić moduł Request.

Free zwalnia środek transportu, który został ostatnio przydzielony jednostce. Może on

być natychmiast przydzielony innej jednostce, która czeka w kolejce. Jeżeli nie określono

nazwy i numeru transportera, to zostanie zwolniony ten, który był przydzielany jako

ostatni.

Halt zmienia status środka transportu na nieaktywny, ponownie aktywować można go

modułem Activate. Dezaktywować można tylko pusty transporter. Jeśli w danym czasie

jest on zajęty, zmiana stanu nastąpi dopiero po zwolnieniu go przez transportowaną

jednostkę. Jeżeli nie określono w polu Unit Number numeru transportera, to zostanie

zatrzymany transporter o numerze najmniejszym (bez względu na to, do której jednostki

został wcześniej przydzielony), a nie ten, który jest przydzielony do jednostki obecnej w

module Halt.

background image


38

Move przesuwa środek transportu z miejsca jego pobytu do miejsca, gdzie czeka na

niego jednostka wymagająca transportu. Docelowe miejsce jest definiowane w polu

Destination Type

. Zanim zostanie przesunięty, musi zostać przydzielony jednostce, co

można zrobić modułem Allocate. Moduł nie przemieszcza pojazdu wraz z jednostką do

następnej stacji. Można to zrobić za pomocą np. modułu Transport. Czas przejazdu

zależy od prędkości pojazdu (zdefiniowanej w polu Velocity lub w module Transporter)

oraz od odległości pomiędzy stacjami (określonej w module Distance). Określenie

prędkości w polu Velocity jest tymczasowe i dotyczy tylko tego numeru pojazdu, który jest

przesuwany. Jeżeli nie określono numeru przesuwanego transportera, domyślnie jest

uznawane, że dotyczy to ostatnio przydzielonego do jednostki pojazdu.

Request powoduje przydzielenie pojazdu do jednostki i przesunięcie go z jego miejsca

pobytu do miejsca, w którym jest ta jednostka. Request jest połączeniem modułów

Allocate i Move. Podobnie jak w Allocate

, pojazd przydziela się podając jego nazwę i

określając reguły, według których będzie wybrany, jeżeli jest kilka dostępnych pojazdów

(reguły są analogiczne, jak w module Leave). Można także określić tymczasowo

prędkość pojazdu jadącego do miejsca pobytu jednostki. Jeżeli w danej chwili nie ma

dostępnego pojazdu, jednostki czekają w kolejce.

Transport przemieszcza jednostki z jednej stacji do następnej, przy czym pojazd musi

być wcześniej przydzielony jednostce, np. modułem Request lub Allocate (po tym module

należy użyć modułu Move, który przesunie transporter do miejsca pobytu jednostki).

Miejsce przeznaczenia wybiera się w polu Destination Type. Opcja Sequential wymaga

wcześniejszego przypisania jednostce marszruty (np. w module Assign) do atrybutu

Entity.Sequence

. Kolejność przejścia jednostki przez system określa się w module

Sequence

. Czas transportu zależy od prędkości pojazdu i odległości między stacjami,

zdefiniowanymi w modułach Transporter i Distance.

Advanced Transfer zawiera

także następujące moduły danych:

Sequence jest stosowany do definiowania kolejności stacji, w jakiej jednostki

przechodzące przez system będą je odwiedzać. Moduł jest często wykorzystywany w

modelowaniu systemów wytwarzania. Moduł zawiera listę stacji uporządkowaną w takiej

kolejności, w jakiej jednostka będzie przez nie przechodzić. Każdy typ jednostek może

mieć przypisaną inną marszrutę, zgodnie z którą odwiedzać będzie dane stanowiska (np.

maszyny). W tym celu należy przypisać do atrybutu Entity.Sequence (automatycznie

przydzielanego do jednostek) nazwę sekwencji stacji, zdefiniowanej w module Sequence,

background image


39

np. kolejność dla jednostki P1 ma nazwę Sequence1, więc zapis dla P1 będzie miał

postać Entity.Sequence == Sequence1. Można to zrobić np. modułem Assign. Moduły

transportujące jednostki między stacjami (Leave, Route, Transport) posiadają w polu

Station lub Destination Type

opcję Sequential (Sequence), która pozwala przemieszczać

jednostki zgodnie z przypisaną im kolejnością. W module Sequence istnieje też

możliwość przypisania atrybutu, symbolu graficznego do każdej jednostki, która jest

obecna w danej stacji (np. czasu obróbki, wyglądu). Dokonuje się tego w polu

Assignments. Pole Step Name

służy do nazywania danego etapu w sekwencji, np. Step1

Part1. Podanie w polach Next Step

nazw (pochodzących z kolumny Step Name)

spowoduje, że stacje nie będą odwiedzane w wymienionej kolejności, ale w kolejności

określonej przez te pola. Jednostki posiadają trzy wbudowane atrybuty, które

przechowują informację odnośnie ich sekwencji. Atrybut Entity.Sequence przydziela

jednostce daną sekwencję, która musi być przypisana przez użytkownika. Entity.JobStep

określa pozycję jednostki w sekwencji (np. wartość 2 oznacza, że jednostka odwiedza

drugą stację), a Entity.Station – stację, w której jednostka jest lub do której jest

transportowana. Ich wartość jest aktualizowana automatycznie.

Conveyor definiuje przenośnik taśmowy (jeden lub więcej), który przemieszcza jednostki

pomiędzy stacjami systemu. Używanie w modelu przenośnika wymaga ustawienia

segmentów, które go tworzą, za pomocą modułu Segment. Nazwę ustawień segmentów

wpisuje się w polu Segment Name. Należy tak dobrać rozmiar komórki Cell Size, aby

suma odległości pomiędzy stacjami była przez nią podzielna. Moduł określa także

prędkość taśmy (pole Velocity), rozmiar podstawowej komórki (pole Cell Size),

maksymalną liczbę komórek zajmowanych przez jednostki (pole Max Cells Occupied),

początkowy status – aktywny lub nie (pole Initial Status). Jednostka może zajmować na

taśmie dowolną liczbę komórek. Pole Type określa typ przenośnika: Accumulating

podczas załadunku lub rozładunku jednostki przenośnik nie zatrzymuje się, a jednostka

wchodząca na taśmę lub opuszczająca ją powoduje chwilowy zator (tzn. odległości

pomiędzy jednostkami zmieniają się) lub Non – Accumulating – przenośnik zatrzymuje

się na czas ładowania lub rozładowania jednostki, w tym czasie wszystkie jednostki

obecne na taśmie również się zatrzymują, a odległości pomiędzy nimi są stałe.

Segment definiuje segmenty, jest uzupełnieniem modułu Conveyor. Trasa, po której

porusza się przenośnik, składa się z szeregu połączonych segmentów. Każdy segment

zaczyna się i kończy w stacji. Definicja przenośnika zawiera nazwę początkowej stacji

(Beginning Station

) oraz listę następnych stacji (Next Station) i odległości pomiędzy nimi

(Lenght

), które muszą być liczbami całkowitymi. Dystans definiuje się pomiędzy daną

background image


40

stacją, a stacją wymienioną we wcześniejszym wierszu, czyli liczba wpisana w wierszu 2

jest odległością pomiędzy stacją wymienioną w 1 i 2 wierszu. Jednostki mogą się

przemieszczać tylko w jednym kierunku, od początkowej stacji do następnych.

Przenośnik ma postać taśmy – gdy nazwa początkowej stacji jest inna od nazwy stacji

końcowej lub postać pętli (loop) – wtedy stacja początkowa jest zarazem stacją końcową,

przy czym nie ma znaczenia, która stacja jest wybrana jako początkowa.

Transporter służy do definiowania ruchomych urządzeń transportowych, takich jak

wózki, samochody, ludzie. Pole Capacity ustawia liczbę dostępnych transporterów

danego typu. Pole Distance Set

zawiera nazwę ustawienia, które jest zdefiniowane w

module Distance. Distance

określa, pomiędzy jakimi stacjami będzie się przemieszczał

transporter oraz jaka jest odległość między nimi. Pole Velocity pozwala ustawiać

prędkość poruszania się transportera, którą można zmieniać na wiele sposobów, np. w

modułach Move, Request i Transport (pole Velocity) lub przez przypisanie nowej wartości

zmiennej VT (Transporter)

(przy użyciu modułu Assign). Istnieje wiele zmiennych, za

pomocą których można uzyskać informacje np. o miejscu pobytu danego wózka (zmienna

LT (Transporter, Unit Number)

), liczbie zajętych wózków (zmienna NT (Transporter)) i

wiele innych.

Distance służy do definiowania odległości pomiędzy stacjami. Z tych ustawień korzysta

transporter, który przemieszcza jednostki pomiędzy tymi stacjami. Moduł ten jest

koniecznym uzupełnieniem modułu Transporter – w polu Distance Set należy wprowadzić

nazwę ustawienia (Name) zdefiniowanego w module Distance. Odległość pomiędzy

stacjami i prędkość transportera wyznacza w trakcie symulacji czas, który jest potrzebny

do przemieszczenia się środka transportu między danymi stacjami. W polu Stations

wprowadza się nazwy dwóch stacji i odległość pomiędzy nimi (tylko liczby całkowite,

nieujemne), przy czym należy uwzględnić wszystkie kombinacje stacji, które odwiedza

wózek, gdyż moduł nie oblicza sam odległości. Np. podanie dystansu pomiędzy stacją

S1

S2 oraz S2S3 nie wystarczy, gdy transporter ma także poruszać się na trasie

S1

S3. Jeśli nie określono dystansu, który jest potrzebny wózkowi, aby się przemieścić,

w trakcie symulacji pojawi się uwaga, że dystans pomiędzy danymi stacjami został

przyjęty jako 0. Jeżeli odległość pomiędzy stacjami S1S2 jest taka sama, jak pomiędzy

S2

S1, wystarczy wprowadzić tę parę stacji raz (wtedy nie ma znaczenia, która stacja

jest początkowa, a która końcowa), jeżeli jest inna – należy wprowadzić ją dwukrotnie,

rozróżniając stację początkową i końcową.


Wyszukiwarka

Podobne podstrony:
Opis programu komputerowego Twierdzenie Pitagorasa-dowód i z, wrzut na chomika listopad, Informatyka
Opis programu Photo Collage Platinum
1 Opis programu CorelDRAW
Opis programu TrUtil i jego funkcje, Travian, Travian
Polski opis programu EST
Pliki opis Programowanie w C
Polski opis programów pakietu winPenPack Flash 2Gb
opis programu skrot
Opis programu YAGI
links-opis programu
opis programu ksztalcenia - psychologia , ! PSYCHOLOGIA PSYCHIATRIA
Opis programów w Pascalu
Alg. Kruskala PJ, Opis programu, Autor całego projektu: Paweł Jaroszewski gr 12
Opis programu DalilyDiary
Polski opis programu FX ChemStruct 1
Opis programów
Polski opis programu QJot Portable, Opisy programów FREE
1.Opis programu CorelDRAW, ^v^ UCZELNIA ^v^, ^v^ Pedagogika, promocja zdrowia z arteterapią i socjot

więcej podobnych podstron