Sie sind auf Seite 1von 148

FOREWORD

In January 2001 our first Arena Handbook was published. This Handbook was a response
to the lack of a manual that could be used for courses on the simulation environment Arena.
For the past two years this handbook has been used by many students and teachers and we
received positive reactions on the clear structure and extensive explanations.
Of course we received negative reactions as well. With the release of Arena 6.0, the
moment had come to review the existing Handbook and to use the comments and
suggestions of users to create a new version. Marjolein Gransjean and Martijn Verschuren
wrote a number of new sections. Roderik Hylkema translated the manual into English.
Alexander Verbraeck did the last quality check and the editing.
We have tried to make this new Handbook even better ordered and provide the user with
clear explanations. The Handbook has been edited for content and lay-out. Every Arena
module is discussed in the same way so this Handbook can be used not only as a manual
but also as a reference guide.
We hope that our efforts have resulted in a Handbook that every user will consider a useful
and instructive guide during his/her first steps in simulation!
Delft, November 2002

Alexander Verbraeck
Jaap Beerens
Marjolein Gransjean
Herre van Kaam
Roderik Hylkema

Jaap Beerens and Herre van Kaam are students in Systems Engineering and Policy
Analysis at the TU Delft and are partners in D3K Simulations and Consultancy, a company
specialised in applying simulation in consultancy and research projects.
Marjolein Gransjean and Roderik Hylkema are students in Systems Engineering and Policy
Analysis at TU Delft
Alexander Verbraeck is an associate professor at the Systems Engineering Department of
the Faculty of Technology, Policy and Management of TU Delft and research professor in
supply chain management of the R.H. Smith School of Business of the University of
Maryland, USA.

Foreword

TABLE OF CONTENTS
INTRODUCTION ...................................................................................................................................................1
OVERVIEW OF ARENA ......................................................................................................................................5
2.1 USER-INTERFACE OF ARENA ..................................................................................................................6
2.2 MODELLING, ANIMATING AND SIMULATING ....................................................................................8
2.3 LICENCED AND TRAINING/EVALUATION MODE ...............................................................................8
2.4 HELP WHEN USING ARENA......................................................................................................................9
GETTING STARTED WITH ARENA...............................................................................................................13
3.1 ARRIVALS: CREATE & ENTITY..............................................................................................................14
3.1.1 Data Module - Entity ..........................................................................................................................14
3.1.2 Flowchart Module - Create .................................................................................................................16
3.2 PROCESSES: PROCESS, RESOURCE & QUEUE....................................................................................18
3.2.1 Data Module - Resource .....................................................................................................................18
3.2.2 Data Module - Queue..........................................................................................................................21
3.2.3 Flowchart Module - Process ...............................................................................................................23
3.3 END OF THE SYSTEM: DISPOSE.............................................................................................................26
3.4 EXAMPLE: THE BANK..............................................................................................................................26
3.5 EXERCISE ASSIGNMENT: THE BAKERY..............................................................................................30
BASIC ENTITY PROCESSES ............................................................................................................................31
4.1 ATTRIBUTES AND VARIABLES: ASSIGN.............................................................................................32
4.1.1 Data module: Variable ........................................................................................................................32
4.1.2 Attributes.............................................................................................................................................34
4.1.3 Flowchart Module: Assign..................................................................................................................34
4.2 ROUTING TROUGH THE LOGIC: DECIDE ............................................................................................36
4.2.1 Flowchart Module: Decide .................................................................................................................36
4.2.2 Examples.............................................................................................................................................38
4.3 BATCHING, SEPARATING AND COPYING: BATCH AND SEPARATE ............................................41
4.3.1 Flowchart Module: Batch ...................................................................................................................41
4.3.2 Flowchart Module: Separate...............................................................................................................43
4.3.3 Batching and separating: An example ................................................................................................45
4.3.4 Match module .....................................................................................................................................47
4.3.5 Example ..............................................................................................................................................48
4.4 EXERCISE ASSIGNMENT .........................................................................................................................50
MODELLING AND ANIMATING MOVEMENT ...........................................................................................51
5.1 MODELLING AND ANIMATING MOVEMENT OF ENTITIES ............................................................52
5.1.1 Station .................................................................................................................................................52
5.1.2 Route ...................................................................................................................................................54
5.1.3 Example ..............................................................................................................................................56
5.2 SEQUENCES................................................................................................................................................58
5.2.1 Sequence module ................................................................................................................................59
5.2.2 Examples.............................................................................................................................................60
5.3 EXERCISE....................................................................................................................................................67
TRANSPORT ........................................................................................................................................................69
6.1 TRANSPORTER ..........................................................................................................................................70
6.1.1 Transporter module.............................................................................................................................70
6.1.2 Distance module..................................................................................................................................72
6.1.3 Request module...................................................................................................................................74
6.1.4 Transport module ................................................................................................................................76
6.1.5 Free module ........................................................................................................................................77
6.1.6 Order of modelling a Transporter .......................................................................................................77
6.1.7 Example ..............................................................................................................................................78
Table of Contents
ii

6.2 CONVEYOR.................................................................................................................................................82
6.2.1 Conveyor module................................................................................................................................82
6.2.2 Segment module..................................................................................................................................84
6.2.3 Access module ....................................................................................................................................86
6.2.4 Convey module ...................................................................................................................................87
6.2.5 Exit module.........................................................................................................................................88
6.2.6 Order of modelling of a Conveyor......................................................................................................88
6.2.7 Example ..............................................................................................................................................89
6.3 EXERCISE....................................................................................................................................................93
ADVANCED MODELLING................................................................................................................................95
7.1 SPECIAL CONSTRUCTIONS ....................................................................................................................96
7.1.1 Schedules ............................................................................................................................................96
7.1.2 Hold-Signal .........................................................................................................................................97
7.1.3 PickStation ..........................................................................................................................................99
7.1.4 ReadWrite .........................................................................................................................................100
7.1.5 Searching a Queue and removing an entity ......................................................................................102
7.1.6 Record ...............................................................................................................................................105
7.2 BLOCKS TEMPLATE ...............................................................................................................................106
7.2.1 General Explanation .........................................................................................................................106
7.2.2 Queue block ......................................................................................................................................107
7.2.3 Alter-block ........................................................................................................................................108
7.3 MODELLING IN A STRUCTURED WAY ..............................................................................................111
7.3.1 Sub models........................................................................................................................................111
7.3.2 Views ................................................................................................................................................113
APPENDICES .....................................................................................................................................................115
APPENDIX A

OVERVIEW OF TOOLBARS ..........................................................................................117

APPENDIX B

RUN SETUP AND REPORTS...........................................................................................119

APPENDIX C

ERROR MESSAGES..........................................................................................................123

APPENDIX D

EXPRESSION BUILDER ..................................................................................................129

APPENDIX E

INPUT ANALYZER...........................................................................................................131

APPENDIX F

PICTURE PLACEMENT ..................................................................................................136

APPENDIX G

PROBABILITY DISTRIBUTIONS..................................................................................139

Table of Contents

iii

Table of Contents

iv

1
Introduction
Arena, the simulation package which is described in this handbook, has been developed
based on the principle of flow-oriented simulation. The idea behind flow-oriented
simulation is that you can represent a real situation as a series of delays and processes
through which entities flow. This way of modelling corresponds with the way in which
people often represent a system intuitively. If you ask someone how he/she thinks a certain
process works, often this person will draw a diagram using blocks and arrows to indicate
the activities that are carried out and the sequence in which they are performed.

System
Entrance

Exit

Figure 1.1 Flow model with system borders

Introduction

-1-

A flow-oriented simulation model has, therefore, a starting point where entities enter the
system and an exit point where entities leave the system. Entities contain knowledge to
allow them to follow a route through the system: in case of various paths through the
system, every entity can be assigned certain characteristics according to which the entity
can determine its own route.
Entities:
The units that flow
through the model of
the system on which
activities can be carried
out.

In Figure 1.1 you can see how you can visualize a flow-oriented system. The system that
you want to model has a boundary that has been chosen by the modeler: The system
boundary. This boundary determines what you do include and do not include in your model
of the actual situation. In figure 1 you can see that the entrance and exit of the system are
located on the system boundary. This is done because the entities that flow through the
system must come from somewhere and, after flowing through the system, they must go
somewhere. In the model we do not consider where entities come from or where they go to;
this is something outside the system boundary. Therefore, in the simulation model entities
must be created to simulate their entrance into the system and, after passing through the
system, they must also be disposed of. We call the entrance that creates entities and the exit
that removes entities artefacts of the system.
Before you can start building a simulation model, you must first map out the system that
you want to model. If you are going to build a flow-oriented simulation model, it is sensible
to choose a modelling technique that is based on flow orientation. Examples of such
modelling techniques are the IDEF-0-diagram and the task-actor-diagram. It is, however,
not obligatory to keep to a predefined modelling technique. After having built a number of
models, you will know the best way of representing a model on paper, so that you can use
the description optimally when building your simulation model.

Modules:
The basic building
blocks of Arena, which
we can distinguish into
data and flowchart
modules

This handbook is a manual to the Arena simulation package, but you will only really learn
how to operate the application by actually using it. We have therefore chosen a practical
approach: Every chapter explains a number of Arena modules. Every section starts with a
description of a part of the functionality of Arena, after that a case example extensively
demonstrates how the functionality is used in practice. Moreover, at the end of each
chapter, we give an exercise assignment, that you can use to put what you have learned into
practice. We therefore advise you to work through this handbook on the PC so that you can
follow the explanation and examples hands-on and can carry out the exercise assignments
immediately.
The handbook is divided into a number of chapters. Each of them addresses a certain aspect
of Arena. The structure has been chosen in such a manner that we move from simple to
more complex use of the software. The following subjects will be addressed in the chapters
below:
The 2nd chapter will focus on a number of general aspects of Arena, We will deal with the
Arena screen and consider how the help-function works. In the 3rd chapter we will go into
the first modules of Arena; The Create, Process, Dispose, Resource and Queue modules.

Overview of Arena

-2-

Subsequently in chapter 4 we discuss how one can give entities specific attributes based on
which the entities move through the model using different routes.
Movements of entities are discussed in chapter 5 and in chapter 6 we distinguish between
two means of transport of entities. These first six chapters form the basis of Arena. In
chapter 7 we will go into the more complex parts of Arena: Advance use of Arena.
The matters discussed in the handbook provide a far from exhaustive description of the
possibilities of Arena. However, those who will finish this handbook have basic knowledge
of Arena and have more than enough knowledge to single-handedly discover the other
functionality of Arena.

Overview of Arena

-3-

Overview of Arena

-4-

2
Overview of Arena
INTRODUCTION: In this chapter we give an overview of Arena. In paragraph 2.1 we show the parts of the
Arena screen and what the functions of these parts are. A model can be in various states in
Arena. In addition, there is also the possibility of making an animation of the model. These
two items will be discussed in paragraph 2.2. In paragraph 2.3 the difference between
Arena Full-licence mode and Arena Training/evaluation mode will be shown. Finally, in
paragraph 2.4 we will elaborate on the use of the Help-function and how to use the example
models (SMARTs) of Arena.

OBJECTIVES:

Having completed the chapter:


you will be familiar with the function of the menu bars and the toolbars, the project bar,
the model window and the spreadsheet window.
you will know the difference between modelling, animating and simulating.
you will know how to start and use the help function.
you will know the purpose of the SMART models.

Overview of Arena

-5-

2.1 USER-INTERFACE OF ARENA


When we open Arena, a screen like the one shown in Figure 2.1 will appear. If a warning is
displayed while opening Arena that states that the program is already open in
training/evaluation mode, you can just click OK to ignore it (see paragraph 2.3).
The screen can be roughly divided into 4 areas:
The menu bar and toolbars at the top of the screen;
The model window, at the right-hand side in the middle
The project bar at the left-hand side;
The spreadsheet window at the right-hand side at the bottom.
The above mentioned areas will be discussed below.

Project Bar

Model Window

Spreadsheet Window
Figure 2.1 The Arena screen

Menubar and Toolbars: The menu bar contains the common Windows functions such as those for
opening and saving models and calling-up the help function. We assume that you have
sufficient knowledge of Windows to use these functions. In addition, you can set specific
Arena preferences via the menu. Where required, we will explain in this manual how you
can set specific default preferences.
Arena has a considerable number of toolbars that contain buttons. These buttons can be
used to execute standard Windows functions and specific Arena functions. If the cursor is
positioned over a button, a tooltip will be displayed stating the function of the button. We
make regular use of the toolbars in this manual. We will mention the name of the button
and the toolbar that contains it. Figure 2.2 shows the toolbars that will be used frequently.
APPENDIX A gives an overview of the functions of all buttons of the toolbars of Figure
2.2.

Overview of Arena

-6-

Figure 2.2 Frequently used toolbars

Project-bar:
Panel
The objects that are
being used are shown
in a panel in the project
bar.

The left part of the screen contains the project bar. By using the project bar you can open
panels that contain Arena modules. You can open a panel by clicking the right-hand mouse
button in the project bar and then selecting Attach. You can then select the panel you
want to open. Arena has a number of panels that are used often:
Basic Process
Advanced Process
Advanced Transfer
The above mentioned panels will be discussed in detail in following chapters. There are
two types of modules included in the panels:
The flowchart modules are positioned in the model window and are connected to each
other. Thus, they form the logic of the simulation model. You position flowchart models by
dragging them into the model window.
The data modules are not positioned in the model window, but are processed via the
spreadsheet in the spreadsheet window.
In the project bar, reports of the simulation runs can also be shown. This is done using the
reports panel (see also APPENDIX B). In the navigation panel it is possible to navigate
through the various hierarchical layers and predefined sreeens of the simulation model,
provided that sub models and/or views have been used. (see also chapter 7).

Model Window: As already stated in the introduction, Arena is a flow-oriented simulation package.
You can see this by the way you build a simulation model. Arena uses modules of which
the parameters can be set as desired. You connect the modules, so that they form a
flowchart. The entities flow through the simulation model in the way that is determined by
this flowchart.
You position the modules in the model window in order to build the logic of the simulation
model. When they have been positioned, you enter the parameters of the module in the
dialog box that can be opened by double-clicking the module.
Connector:
The line graphically
connecting the
modules.

The modules are connected together using connectors. Therefore the logic that you have
built appears in the form of a flowchart. Arena automatically inserts a connector between a
selected and the newly placed module. Connectors can be selected and deleted using the
mouse. You add a connector by clicking the connect button

in the Standard toolbar.

This allows you to manually create a connector between two modules.


Overview of Arena

-7-

In addition to modules, you can position animation elements (see also chapter 3),
backgrounds and texts in the model window. Every type of picture and font that you can
use in the Microsoft Office package, can also be used in the model window. You do this by
copying the picture or text concerned and then pasting it into the model window. See also
paragraph 2.2 for more explanation.
The Spreadsheet Window: In the spreadsheet window, the parameters of a module are displayed.
Most module parameters can also be viewed and changed in the spreadsheet. The type of
module that is displayed is dependent on the module selected in the project bar or the model
window. If a Create Module is selected in the model window, the spreadsheet shows an
overview of all Create Modules in the model window together with their parameters.

2.2 MODELLING, ANIMATING AND SIMULATING


Modelling, animating and simulating; these three notions will often be used in this
handbook and while making a model. This is why we will here explain these notions.
Modelling is the first step of the computer simulation model building process. In this step
you will translate the conceptual model you have made into an Arena model. For this you
use the modules from the project bar. You enter the parameters in every module and by
doing this you build a flowchart model. When the Arena model is being built, the model is
in edit-mode.
Furthermore an animation can be built. This is the part of the model that you will show to
your boss or employer, as it is a dynamic and graphical representation of the model. There
are various graphs, images and counters available to build a nice animation. It is also
possible to insert your own images in Arena. An animation is a very important help in the
verification and validation of your model.
Simulating itself (or experimenting) is the last step. You will start to run the model (with
the Go-button (
Reports:
The output data of the
simulation runs is
stored in a set of
reports.

), the model is then in run-mode. Parameters for this run can be

entered and changed in the Run-Setup (Menu bar, Run, Setup). For example we can enter
here how long the simulation should run. When Arena has finished the run of the model,
you will be prompted if you want to see the results. Arena will open the reports, these
display the output data of the simulation run. The Run Setup and Reports are explained in
more detail in APPENDIX B.

2.3 LICENCED AND TRAINING/EVALUATION MODE


If you do not have a license for Arena and you use the program in training / evaluation
mode, when opening Arena a message will be displayed that states that you are using the
training / evaluation mode (see Figure 2.3). This only has consequences for the size of
simulation models that you are able to build. In this version you can only build models that
do not exceed 52 modules and the number of entities that are present simultaneously in the
Overview of Arena

-8-

modelled system during a simulation run must not exceed 100. However, the training /
evaluation mode offers all the functionality of Arena.
In case such a message is not displayed upon starting Arena, a licence is being used and the
program will function unlimited.

Figure 2.3 Warning: Arena is being started in training/evaluation mode

Arena will report an error if the maximum number of modules has been exceeded. A model
in which the maximum number of modules is exceeded can no longer be saved or run. If
the maximum number of entities has been exceeded during a run, the run will stop and
Arena will report an error (see APPENDIX C).
Every model that has been built using a licensed program can be opened in training /
evaluation mode, even if the maximum number of modules or entities would be exceeded.
In this case, the model will be opened in run mode. You will be able to run the model and
edit and save parameters, but you can not delete or add model components from the limited
version.

2.4 HELP WHEN USING ARENA


Although we try to explain every functionality fully, it can be that when using Arena some
things remain unclear. In that case, Arena has an extensive and clear help function, and
more than 180 example models are supplied with the package. These examples clarify the
operation of certain modules. In this paragraph we address the help function and the
SMART models.
Help function: You can consult the help function via the "Help" menu and then "Arena Help
Topics", but every dialog box also has a button entitled "Help" that leads you to the help
function. In the latter case, Arena immediately offers information that is related to the
dialog box in which the help button was clicked. In the help function, information is
available in the form of an explanation for every parameter that can be entered, together
with examples and related information.
The tab "Contents (or Inhoud" if a Dutch language version of Windows is installed on the
PC), gives further information in the form of the well-known Windows books. In the tabs
Index and Search (or Zoeken) you can search on keywords in the books.

Overview of Arena

-9-

Figure 2.4 The Help dialog box

Figure 2.6 shows what happens when you search for "Create Module". The resulting help
function displays a screen with an explanation concerning the Create Module. In the yellow
field, 5 buttons are displayed. As standard the "Main Topic" is displayed. By clicking on
the other four buttons, you can request information about animation (Animation), examples
can be examined (Examples), an explanation is given of the prompts in the dialog box of
the module (Prompts) and extra remarks concerning the module can be read (Remarks).

Figure 2.5 Dialog box of Help topics Arena

This summary of the Create Module can also be requested by clicking the Help button
in the dialog box of the Create Module.

Figure 2.6 Searching for "Create Module" the search results

When consulting the help function, you will regularly come across words underlined in
green. These are links to related subjects. By clicking on them, the information on the
subject concerned is displayed.
Usually hard to find topics to remember in the Help Topics Index are: Variables for all
internal Arena functions, Distributions for the statistical distributions, and Run Controller
Commands for the Command window tasks.
Overview of Arena

- 10 -

SMART models: Arena is supplied with over 180 example models, called SMART models.
SMART models are small simulation models that are intended to clarify the operation of
the modules and to demonstrate modelling techniques. These SMART models are located
in the "Smarts" directory in the Arena directory (so for instance C:\Program Files\Rockwell
Software\Arena 6.0\Smarts).
In the help function of Arena (Help Help Topics Arena) all SMART models are classified
in various categories. You can call up the SMART models by typing SMART in the tab
Index of the help function. As shown in Figure 2.7, you can select the SMART Files
Library. In Figure 2.8 the overview of Smart Files is shown that appears when you click
SMART Files Library.

Figure 2.7 Calling up an overview of the SMART-models

Figure 2.8 SMART Files overview

If you click on one of the green underlined model names, a short description of the model,
including a summary of the modules used, is displayed.
Resource:
A resource is unit that
needs to be claimed in
order to execute a
certain process.

The SMART-model can then be opened through the small button in front of the description
of the model. Figure 2.9 shows the model Smart 010. The model demonstrates the
animation of a resource. Two text boxes give a further explanation of the operation of the
model.
If an error message appears when you want to open the SMART-model from the help
function, you can also open the model via File, Open and by navigating to the directory
in which Arena has been installed. In this directory you will find the folder SMARTS. In
this folder select the SMART model you wish to open and click the Open-button.

Overview of Arena

- 11 -

Figure 2.9 The screen of SMART model Smart010.doe

By clicking the "Go"-button (

) the model is put in "Run mode", the simulation is started

and you can view the animation. By clicking the "End"-button (

) the simulation is ended

and the model returns to the Edit mode.


To be able to run the model, the model has to be opened from a location on which the user
has the rights to write. If you open a SMART model from a drive on the network on which
you are not allowed to write or from a CD-ROM an error message will appear. In this case,
store the model in a location with rights to write, and then run the model.

Overview of Arena

- 12 -

3
Getting started with Arena
INTRODUCTION: In this chapter we build our first Arena model. Therefore, we will first deal with the
flowchart modules Create, Process and Dispose and we will look into the data modules
Entity, Resource and Queue. For every module we will look into the functionality, share a
few practical experiences, and show the properties of the module and the possible
animation.
Resource, Entity and Queue are called data modules because the modules are not placed as
a part of the flowchart in the model window, but instead they are modelled in their
spreadsheets. Conversely, the other three modules (Create, Process and Dispose) are placed
in the model window. On the basis of these flowchart modules we will structure this
chapter. Paragraph 3.1 (Arrivals) will deal with the Create module; next in paragraph 3.2
(Processes) the Process module is discussed. Finally in paragraph 3.3 (End of System), the
Dispose module is looked into. The data modules are used in the various flowchart modules
and are discussed in the concerning paragraphs.

OBJECTIVES:

Having completed the chapter:


you will understand the operation of the Create, Process, Dispose, Entity, Queue and
Resource modules;
you will be able to use these modules to create a simple simulation model based on a
written case description;
you will be able to carry out a simple simulation run and interpret the results.

Getting started with Arena

- 13 -

3.1 ARRIVALS: CREATE & ENTITY


This paragraph deals with the arrival process in a simulation model. The process of arrivals
is modelled in Arena by means of the Create module. In the Create module we specify how
many entities (customers, orders, etc) arrive at the process that is being modelled. Below
we will first elaborate on the Entity module and afterwards the Create module is discussed.

3.1.1 Data Module - Entity


Functionality: The entities flowing through the logics of your model that can undergo processes are
called entities. The entities are defined in the Entity module. You can find this module in
the Basic process panel. The entity module is a data module
Practical examples: Examples of entities are:

Customers in a shop.

Bottles in a soft drinks factory.

Orders at an insurance company.

Telephone calls at a call center.

Properties: Because the Entity module is a data module, the Entity module is not placed in the
modelling window. The Entity module is a data module. Therefore, you do not place this
module in the model window, but enter the data for an entity in the spreadsheet window.
You can also enter or edit the data of an entity by calling up a dialog box. You do this by
clicking the right mouse button on the list of entities that you want to work on and then
selecting option "Edit via Dialog" (see Figure 3.1). Additionally it is possible to call up
the windows by double clicking on the number in front of the row. In this case number 1.

Figure 3.1 Calling up a dialog box for the Entity module

Figure 3.2 shows the dialog box of the Entity module. In this window various parameters
can be set. In Table 3.1 we discuss all options.

Figure 3.2 Entity dialog box

Getting started with Arena

- 14 -

Fieldname:

Explanation:

Entity Type

In the field of "Entity Type" you specify the type of entity you want to model with a
name, e.g. "client" or "form".

Initial Picture

In this field you (can) select the animation picture of this entity.

Initial Costs
Value Added, NonValue Added, etc

These fields relate to the cost calculations that Arena is able to perform. In the
field "Initial Costs" you (can) specify the initial costs assigned to an entity at its
creation.

Report Statistics

By selecting this checkbox you tell Arena to collect statics about an entity during
the model run. Report Statistics is an option return very often in various dialog
boxes, we only discuss it for this dialog box (see also APPENDIX B).

Table 3.1

The Entity dialog box in detail

Animation: As shown in chapter 2, animation is an important part of Arena. An animation can only
improve the communicative value of a model when the animation evokes recognition with
the people to whom the animation is shown. In this paragraph we will discuss how to make
the entities recognisable when flowing through your model.
When you model a client as an entity, you would like to see a person moving over the
screen. The default picture of an entity is set to a picture of a document. In some cases, this
does not improve the recognisability of the model. To change this picture, we therefore
have to assign a different picture to the entity. For this you need to specify in the dialog box
of every Entity data module (see Figure 3.1: right mouse button in entity spreadsheet; Edit
via Dialog) which picture you would like to assign to the entity type. This is done by
selecting a picture from the pull down menu of "Initial Picture" (Figure 3.2). The list with
possibilities comes from the standard library of pictures, see Figure 3.3. This is the Entity
Picture Placement window.

Figure 3.3 Entity Picture Placement window

To add pictures to this library you can do the following:


1.

In the menu bar go to: Edit, Entity Pictures. Here you open the Entity Picture
Placement window of Figure 3.3.

2.

You can insert an empty picture by clicking Add... in the left column. (if you want
the new picture to appear above another picture in the list, you first have to select this
picture, otherwise the inserted picture will appear below it)

Getting started with Arena

- 15 -

3.

When you have selected the new picture with the <<-button, you can copy a picture
from the right column to the left column or you can create a new picture by double
clicking on the empty picture in the empty field.

4.

Then you give a name to the picture in the Value field. Mind that the picture is still
selected.

5.

When you have finished with the pictures, you click OK-button. (When something
goes wrong you can always click the Cancel-button, then all chances will not be
saved.)

Be sure to remember the name of the picture because the new picture does not
automatically appear in the dropdown list of available pictures in the Entity dialog box!
You can however, simply enter the name in the field; the name of the picture will be
recognised. In Arena several libraries of pictures are supplied. APPENDIX F shows how
the Picture Placement window works.

3.1.2 Flowchart Module - Create


The illustration to the left shows how the Create Module appears after it has been dragged
into the model window. This module can be found in the Basic Process panel. The Create
module is a flowchart module. We will first discuss the functionality and then a number of
examples of practice of this module. After that we will go into the properties of the Create
module.
Functionality: The Create module is an artefact on the system border of the simulation model. This
module creates (groups of) entities with a certain interarrival time and with certain
characteristics. This module can be found in the Basic Process panel.
Counter:
An indication used in
Arena for a counter
with which, in this case,
the number of created
entities is displayed.

The layout of the module is special in three ways: the name, at this moment still "Create 1",
the counter that shows zero at this moment, but that will show the number of created
entities during the simulation run, and the small black arrow on the right side. This arrow is
the beginning of the connector that will connect the Create module to the next module.

Examples of practice: Examples of arrivals types that be modelled with the Create module:

Every hour one phone call to a helpdesk.

Every morning approximately 20 orders are made at a wholesalers.

Once every three minutes a customer enters the supermarket.

Properties: The entities described in paragraph 3.1.1 will enter the model according to a specific
arrival pattern that is modelled in the Create module. You can set the properties of the
Create module yourself by double clicking on the module in the modelling window. A
dialog box will pop up (see Figure 3.4). Table 4.1 shows the properties that can be set in
this dialog box. Apart from that all setting for the Create module can also be entered
through the spreadsheet that appears when the module has been selected.

Getting started with Arena

- 16 -

Figure 3.4 Create dialog box

Fieldname:

Explanation:

Name

Here you (can) enter a module name that you (can) choose yourself.
However, this name must be unique.

Entity type

Indicates the type of the entity to be created, for instance a document,


a customer or an incoming telephone call. This is handy if you have
various types of entities next to each other in one model.

Time Between Arrivals (TBA):


Type, choose from:

Indicates how the time between arrivals will be defined.

Random (expo) Time between arrivals will be derived from an exponential distribution.
Schedule Time between arrivals will be read from a schedule.
(see chapter 7).

Constant Time between arrivals is constant.


Expression Time between arrivals will be determined from a formula supplied by
the user.

Value
(If Type = Random of Constant)

Here the random value or the constant time between arrivals is


specified.

Schedule

This field is used to specify the name of the schedule.

(If Type =Schedule)

Expression
(If Type = Expression)

Units

Specify the probability distribution or formula. Standard distributions can


be selected from the pulldown menu.
Indicates the time units that are used to express the time between
arrivals.

Entities per Arrival

Indicates how many entities must be created each time.

Max Arrivals

If required, this field can be used to indicate how many (groups of)
entities can be created.

First Creation

This field can be used to indicate when the first entity must be created.

Table 3.1 The Create dialog box in detail

Getting started with Arena

- 17 -

3.2 PROCESSES: PROCESS, RESOURCE & QUEUE


In this paragraph we discuss the Process module. The name of the module is self-evident; it
deals with processes that take a certain amount of time and that can use resources as well as
queues. We discuss the Resource module and after that we look into the Queue module.

3.2.1 Data Module - Resource


We will first discuss the functionality. Then we give an overview of examples of practice
and after that we elaborate on the properties of a resource. We end this paragraph by
looking into the animation of a resource.
Functionality: In Arena, a resource is a unit that needs to be claimed before it can execute a certain
process. You can model a resource in the Resource module from the Basic Process panel.
Resources have a limited capacity and they can be active at predetermined times.
Before we continue with a few examples of practice, we will first explain the relationship
between a resource and an entity:
Bakery:

A customer (entity) enters the bakery and wants to order something from
the clerk behind the counter (resource). In Arena a customer can claim a
clerk for a certain period. Then the customer will be served for a certain
period by the clerk and after the process the customer has finished his
order and the clerk is free for the next customer.

Examples of practice: Examples of resources are:

Bank employees

Machines that can clean up to ten bottles at a time

Telephone lines in a call center

Computers in a library

Properties: At any moment in time during a model run, a resource has one of four possible
statuses:
1. Idle; the resource is available but is not claimed by an entity.
2. Busy; the resource is claimed by an entity.
3. Inactive; the resource is not available.
4. Failed; the resource is defective and therefore not available.

The Resource Module from the Basic Process panel is not a flowchart module, but a data
module. Therefore, Resource Modules cannot be placed in the model window. If you select
the Resource Module in the Basic Process panel the following will appear in the
spreadsheet window:

Getting started with Arena

- 18 -

Figure 3.5 Resource spreadsheet

The characteristics of the resource can be directly entered into the spreadsheet, in the same
manner as for the Create and Process Modules. The characteristics of a resource can
similarly be amended via a dialog box. Move the mouse to the entrance of the resource
concerned, click the right mouse button and then select "Edit via Dialog". A dialog box
will appear similar to the one shown in Figure 3.6.

Figure 3.6 Resource dialog box

Fieldname:

Explanation:

Name

Here you can enter a resource name that you can choose yourself.

Type, choose from:

Fixed Capacity During the model run, there is no change in the capacity of the resource
Capacity based on schedule The capacity of the resource changes during the model run in accordance with
the user-specified schedule. This option is described in chapter 7.

Capacity

Capacity of the resource, for example the number of clerks.

(If Type = Capacity)

Schedule Name
(If Type = Capacity based on
Schedule)

The name of the scheme in which the capacity of the resource has been
modelled (see chapter 7)

Schedule Rule, choose from Here you specify how a resource has to act in the case the capacity of the
resource is lowered by the schedule.
Wait The resource finishes processes, before the change in capacity is effectuated.
The extra time that this might take is not being taking into account.

Ignore The resource finishes processes, before the change in capacity is effectuated.
The extra time will be added to the duration of the change in capacity.

Preempt The change in capacity is effectuated immediately, processes still in progress


are not finished.
(If Type = Capacity based on
Schedule)

Busy/Hour

Here it is possible to enter the costs of a busy resource.

Idle/Hour

Here it is possible to enter the costs of an idle resource.

Per Use

Here the fixed (start-up) costs can be entered for each processed entity.

StateSet Name

This is not covered in this manual

Failures

Here you can model the chance of failure of a resource.

Table 3.1

Getting started with Arena

The Resource dialog box in detail

- 19 -

At this point in this book, we only use resources with a fixed capacity. Schedules will be
addressed in chapter 7.
Animating a Resource: In the previous paragraph we saw that a resource is a processing unit that
can have various statuses during a simulation run. A processing unit is a broad concept: It
can be a telephonist, a telephone line, a computer, a shop assistant, etc. In the same way as
for entities, the model has increased its communicative level when a resource is animated in
such a way that it evokes recognition for the person who is viewing the model.
Arena does not animate a resource by default. To add animation of a resource, you click on
the "Resource" (

) button in the Animate toolbar. A dialog box as shown in Figure 3.7

will appear.

Figure 3.7 Resource Picture Placement window

In the right-hand column of this dialog box red squares can be seen, followed by the four
possible statuses of a resource. Above it there are two fields. The top field "Identifier:"
refers to the resource that must be animated. From the pull-down menu you choose the
name of this resource. The field "State:" indicates which status picture is selected at that
moment.
The allocation of pictures from the library in the right-hand column is done in an identical
way as in the Entity Picture Placement screen.
Furthermore, there are two check boxes. If "Auto Scale" is checked, Arena will determine
the size of the picture in the simulation model. If "Seize Area" is checked, a dashed line
will appear on the displayed resource with a circle at the end. This circle indicates where an
entity is positioned in the animation if it is processed by the resource.
You can change the position of the Seize Area by positioning the cursor in the middle of
the circle and clicking once. The Seize Area is now selected: A red dot appears in the circle
and the cursor changes into a crosshair. The circle can now be dragged to the desired
position, if the left mouse button is kept pressed.
If the resource capacity is greater than 1, it might be desirable to show that several entities
will be processed at the same time. When the Seize Area is selected, a double-click will
cause a dialog box to open (Figure 3.8).
Getting started with Arena

- 20 -

Figure 3.8 Dialog box Seize Area

By clicking Points in the Seize Area dialog box, the Points dialog box will be opened
(Figure 3.9). By clicking once on "Add" one extra position will be added to the Seize
Area. You can click "Add" as often as you wish until the desired number of positions has
been created. When you have click Add for a number of times, some zeros will appear
below each other. Then click on "OK" to close the dialog boxes and you will see that the
number of positions in the Seize Area has been increased. The added positions you can drag
to the right place in the modelling window.

Figure 3.9 Add Additional Points to the Seize Area in the dialog box Points

3.2.2 Data Module - Queue


Functionality: Entities that must be processed by a resource, can encounter two situations
when they arrive at the resource:
1.

The resource is idle; in this case the entity can directly claim the resource.

2.

The resource is busy, inactive or failed; the entity must wait until the resource is again
idle.

It is often the case that entities must wait before they can be processed by a resource. All
entities that are waiting are placed on a waiting list: the queue.
Examples of practice: Examples in which a queue is applied:

Queue in front of a counter

Pile of files waiting to be processed

Letters in the bag of a mailman

Buffer of a filling machine

Being on hold with a call center

Properties: In Arena queues are often created automatically. If, for instance, it is indicated
in the dialog box of a Process Module that a resource must be claimed, Arena automatically
Getting started with Arena

- 21 -

places a queue above the Process Module concerned. Because you will sometimes need to
deviate from the standard settings or because you may want to add an extra queue, we will
discuss here the characteristics of a queue.

The Queue Module can be found in the Basic Process panel and is a data module, just as
the Resource module. Therefore, when the Queue Module is selected, a queue spreadsheet,
as shown in Figure 3.10 will appear on the screen.

Figure 3.10 Spreadsheet of the Queue module

Here the characteristics of the queue can be specified directly in the spreadsheet, just as for
the Resource Module. Moreover, in the same way as for the Entity and Resource Modules,
a dialog box can be opened for the queue. This dialog box is shown in Figure 3.11.
A name can be given to the queue in the Queue dialog box. If Arena automatically creates a
queue for a module then the name of the queue always has the form "Module name.Queue".
If for instance, we give the name Fill_Bottle to a Process Module, the name of the
automatically created queue will be Fill_Bottle.Queue. The meaning of the other prompts
in the Queue dialog box can be seen in Table 3.1.

Figure 3.11 Queue dialog box

Fieldname

Explanation

Name

Here you can enter a queue name that you can choose yourself.

Type, choose from:

First In First Out Processing occurs in arrival sequence.


Last in First Out The last entity to arrive will be the first to be processed.
Lowest Attribute Value Queue sequence in accordance with an attribute value (for instance

priority), where the entity with the lowest attribute value will be processed
first. (see chapter 4 for Attributes).
Highest Attribute Value The same as Lowest Attribute Value, but then on the basis of the highest
attribute value.
Attribute Name
(If Type = Lowest Attribute Value of
Highest Attribute Value)

Checkbox Shared

Table 3.1

Here the name of the attribute on which the queue is based must be
defined.
Here you can indicate whether the queue will be shared by various
processes.

The Queue dialog box in detail

Animation: Animating a queue is very important for the communicative value. Bottle necks are
often shown by the length of the queue. Arena automatically put a queue above a Process
module when a resource is being used in this process (see paragraph 3.2.3). If want the
Getting started with Arena

- 22 -

queue to appear in front of the picture of the resource, we can then drag the queue to
another place.
In some modules queues are not automatically added. To add an animation of a queue you
click the button "Queue" (

) from the Animation toolbar. In the model window the dialog

box of Figure 3.12 appears.

Figure 3.12 Queue animation Dialog box

In the field: Identifier you can specify which queue will be animated. Furthermore in the
field Type you can specify the way in which you want to display the queue. By default
Arena display a queue of the type Line. This is a line over which the entities slide when
they enter the queue. The type Point can also be selected; with this, various points can be
defined on which the entities will stand when waiting. The entities will not slide against
each other on the line, but they will wait on the indicated spot. Furthermore the colour of
the line can be changed in the field Colour. Below two possible types of queues are
shown (Figure 3.13).

Figure 3.13 Queue of type Points (left) and Line (right)

3.2.3 Flowchart Module - Process


Functionality: The Process Module is used to process an entity. A process can be just
delaying an entity for a certain time; the entity will only be delayed. However, a process
can be carried out by something or someone, for instance by a machine or a telephonist.
The machine or telephonist is called a resource (the resource; discussed in paragraph 3.2.1).
Furthermore it is possible that a queue builds up when an employee is busy while a next
entity arrives.
Examples of practice: Examples of processes that you can model with a Process module:

Serving of customers on a terrace

Digitising orders

Cleaning of bottles by a cleaning machine

Properties: Just like the Create Module, the Process Module also has a name that can be
determined by the user. As standard, the module is equipped with a counter that records
how many entities are contained in the Process Module. The module has an entrance and an
Getting started with Arena

- 23 -

exit that must be connected using connectors with respectively the preceding and
succeeding modules. Below follows a short example of a Process module.
Glue:

The employee of a factory has got the assignment to glue two part of a
device together. In the first part of this process the employee has to cover
the parts with glue. This is a process in which one employee is needed, the
resource, and in which the entities go through the process one by one and
in which the entities have to wait when the resource is busy. This could be
modelled in a Process module with a seize, delay, release construction
(this construction is demonstrated in Table 3.1).
In a process it is also possible that an entity is delayed for a certain amount
of time, without the help of a resource. If we continue with Glue example:
After the parts have been covered in glue, they have to wait for a certain
time to dry. For this drying process no machine or employee is needed, in
Arena the part (entities) can be delayed for a certain time. This is modelled
in a Process module with a delay construction. Entities can go through
these modules (partially) parallel independent of each other.

By double clicking on the Process module, a dialog box as in Figure 3.14 is opened. Table
3.1 shows which settings can be made in the Process Module.

Figure 3.14 Process dialog box

Getting started with Arena

- 24 -

Fieldname:

Explanation:

Name

Here you can enter a (unique) module name that you can choose yourself.

Type, choose from:

Standard The process will be carried out in the module itself.


Submodel The process will be carried out in a submodel. See chapter 7
Logic
Action, choose from:

Delay The entity will only be delayed; no resource needs to be defined.


Seize Delay Before the process can start, the entity should claim a resource. The resource
will not be released after processing.

Seize Delay Release Before the process can start, the entity should claim a resource. When the
process has finished, the claimed resource will be released.

Delay Release A resource is already claimed; the process can therefore start immediately.

When the process has finished, the earlier claimed resource can be released.

Priority

If a resource is claimed in this module, this field defines the priority of the
entity. This is handy for when a resource is used for multiple processes.

Resources

This field is used to specify which resource(s) must be claimed for this
process. Click on "Add" to add a resource.

Delay type

Defines the type of the processing delay. There is a choice of 4 standard


probability distributions and the possibility to enter your own formula for the
processing time. The parameters of the distributions or the formula are
entered in the last line of the dialog box.

Time Units

Here you enter the time unit associated with the process time.

Allocation

Here the process time is given an allocation that can be used later when
analyzing the results.

Table 3.1

The Process dialog box in detail

* When you click Add under resources, a new dialog box appears (see Figure 3.15).
Here you can specify a number of things, namely: Type, Resource Name and Quantity. For
Type you can choose between Resource or Set. In the next chapters we will choose for
Resource, Set we will not discuss in this manual. Next you can enter a name for the
resource or, when you have already made the resource in the spreadsheet, you can select the
resource from the pull down menu. Under Quantity you specify the number of resources
that you want to claim per entity. For example: If you have to be served by two employees
in the shop, then Quantity should be set to two.

Figure 3.15 Resource dialog box

Let op: The Quantity is not equal to the Capacity. Under Capacity you specify how many units of a
resource are available to the process. For example, there can be four employees in the shop.
In this case the resource employee has a capacity of 4 units. Under Quantity you specify
how many employees are going to serve one customer. The customer is usually served by
only one at a time; therefore Quantity should be equal to 1.
Let op: In the Process module it is possible to click Add more then once to add resources. The
entity being processed should then claim all added resources before the process can be
started. This is not a matter of choice (the entity is not allowed to choose which resource to

Getting started with Arena

- 25 -

claim), or an expansion of capacity (when twice the resource baker in the Resources field
is shown, it does not mean that there are two resources baker available).
Pay attention to the possibility of drawing a negative value from a distribution! For
example a normal distribution is unlimited; this is why negative values as a processing time
can be drawn. In this case, Arena will use the value 0 as processing time and this results in
a distribution function with a different form than meant.

3.3 END OF THE SYSTEM: DISPOSE


Functionality: We have now seen how we can model the creation and processing of entities. At a
certain moment, an entity has progressed through the system and will leave it. In Arena the
system-exit is modelled with a Dispose module from the Basic Process panel. There are no
data modules for the Dispose module.
Examples of practice: Examples of the dispose module are:

The ending of a conversation at a call-center

Bottles are delivered to the client in crates

Orders have been processed and are filed in an archive

Properties: When a Dispose Module is placed in the model window, the characteristics of the
module can be set by selecting the module and filling in the spreadsheet under the model
window, or by double-clicking on the module and then filling in the dialog box as shown in
Figure 3.16.

Figure 3.16 Dispose dialog box

Fieldname

Explanation

Name

Here you can enter a module name that you can choose yourself.

Checkbox Record Entity


Statistics

Here you can indicate whether or not statistical data concerning the entities that
leave the system via this module should be recorded.

Table 3.1

Dispose dialog box in detail

3.4 EXAMPLE: THE BANK


We now have sufficient knowledge of Arena to allow us to build a
simple simulation model. A case is described below which we will use to
create an Arena model in stages.
CASE: THE BANK
A small bank is open from Monday through Friday from 9:00 to 17:00.
Every day a customer enters the bank on average every 9 minutes.
Getting started with Arena

- 26 -

There is one employee continually present who helps the customers


with every possible transaction. The employee is busy with each
customer for at least 3 minutes, but never longer than 7 minutes.
Normally, the customer is served in 5 minutes. When the transaction is
completed, the customer leaves the bank.
STEP 1: MODELLING
It is always sensible, before you start to drag and drop modules, to first
make a flowchart on paper: A so-called "conceptual model". The taskactor diagram below gives an overview of the events in the system.

Customer
Enters the bank

Employee
Serves customers

Customer
Leaves the bank

The diagram can be extended further by indicating with which module


we want to model an event and what we want to enter in these
modules.
We choose to model the time between arrivals using an exponential
distribution. Because only the average of the time between arrivals is
known and there are no data concerning the spread of the time
between arrivals, the exponential distribution is the most applicable
probability distribution.
In the case description we read that an employee requires between 3
and 7 minutes to serve a customer. From this we can see that limits
must be applied to the probability distribution from which we derive the
handling time. Moreover, we read that it normally takes the employee 5
minutes to help the customer. The minimum handling time is therefore
3 minutes, the most common handling time is 5 minutes and the
maximum handling time 7 minutes. It is therefore obvious that we
should model the handling time using a triangular distribution.
If we fill in these details, the diagram will appear as follows:

Customer

Employee

Customer

Enters the bank

Serves customer

Leaves the bank

Create
Name: Entrance
TBA-Type: Expression
Expr.: EXPO(6)

Process
Name: Desk_employee
Action:Seize-Delay-Release
Resource: Employee
Delay Type: Triangular
(Min, Val., Max): (3,5,7)

Dispose
Name: Exit
Record Ent. Stat:
Check

Using this overview it is very easy to create the simulation model. First,
we drag a Create Module into the model window and then double-click
on it to open the dialog box. We fill in this dialog box as follows:

Getting started with Arena

- 27 -

STEP 2: CREATE MODULE


We first drag a Create module into the model window double click on
the module to call up the dialog box. This we fill in as follows:

There is only one entity type (the customer), so we do not need to


model separate entities with specific characteristics using the Entity
Module.
N.B. In Time Between Arrivals - Type we could have chosen Random
and then filled in 9 for Value. This also creates customers in
accordance with an exponential distribution.
Step 3: Process module
Now we drag the Process Module into the model window. If you have
selected the Create Module before dragging the Process Module, then a
connect line will automatically be added between the Create Module
and the Process Module. If this is not done, then the connection line
can be created by clicking on the connect button (

) and then first

clicking on the output of the Create Module and then on the input of
the Process Module.
When the Process Module is positioned and connected to the Create
Module, we fill in the dialog box.

We create the resource Desk_employee by clicking in the Processdialog box on the button "Add" and then by filling in the appearing
dialog box as follows:

Getting started with Arena

- 28 -

When this dialog box has been filled in, Arena defines a resource with
the name Desk_Employee. In the Resources spreadsheet you can see
if the standard settings are correct:

In the case description we read that one person is continually present.


The capacity is therefore already correctly filled in. (Actually, the
employee is only present from 9:00 to 17:00 and therefore not 24
hours a day. Because of the case, it is uninteresting what happens
outside of opening hours, we will therefore not consider the remainder
of the hours.) There is nothing known about costs, so we will not fill
anything in.
Note that when the dialog boxes are closed, a queue is displayed above
the Process Module.
Step 4: Dispose module
Now only the Dispose Module needs to be positioned. We make sure
that the module is connected to the Process Module and then fill in the
dialog box as follows:

When this is done the model window appears more or less as follows:

Step 5: Run Model


The model is now ready and can be run. We first save the model and
then we click the Run-button

in the standard toolbar to start the

simulation If you get an error message, check if no (typing) errors have


been made when filling in the dialog box or look up the error message
in APPENDIX C to determine the cause of the problem. Note that we did
not specify a run length (see APPENDIX B) and that therefore the
model will run infinitely. You can stop the simulation run by clicking the
End-button
Getting started with Arena

- 29 -

3.5 EXERCISE ASSIGNMENT: THE BAKERY


Description
In a small bakery every hour approximately 25 people enter. (Poisson
distributed). In the bakery there are two employees serving customers.
Measurements have shown that serving a customer usually takes 6
minutes, but at least 4 minutes and at most 8 minutes. After customers
have been served, they exit the bakery.
Assignment
Using the information above, make a simulation model in Arena and run
the model. During the run, monitor the queue above the process
module. Do you think that the employees can handle the situation?

Getting started with Arena

- 30 -

4
Basic entity processes
INTRODUCTION: In the models of the previous chapter all entities that passed through the system were equal:
Every entity in the system had identical characteristics and went through the system in the
same way. In reality this is hardly ever the case: customers of a bakery have different
characteristics and want to have different products. Bottles in a soft drink factory go
through other processes than crates. In this chapter we will discuss the characteristics of
entities and how, based on these characteristics or other circumstances, entities choose their
own way through the model. We will go into the use of attributes and variables as well as
the Assign module in paragraph 4.1. In paragraph 4.2 we will look into the Decide-module
with which you can model the path of entities through the model and finally in paragraph
4.3 the Separate, Batch and Match module, with which entities can be batched together and
separated.

OBJECTIVES:

Having completed the chapter:


you will be familiar with the modules Assign, Decide, Separate and Batch
you will know what an attribute is and how you can use attributes in your models;
you will know what a variable is and how you can use variables in your models;
you will be in a position to build your model logic in such a way that the entities flow
through your model in the correct manner.

Basic entity processes

- 31 -

4.1 ATTRIBUTES AND VARIABLES: ASSIGN


In this paragraph we discuss the use of attributes and variables. Figure 4.1 gives an
overview of the use of attributes and variables in a simulation model. In paragraph 4.1.1
we elaborate on what is really meant with a variable and on the Variable module. In
paragraph 4.1.2 we introduce the notion attribute and in paragraph 4.1.3 we discuss the
use of the Assign module from the Basic Process panel.
Model
Entity
Type: C
SerialNumber: 07

Entity

Entity
Type: B
SerialNumber: 03

Entity

Type: A
SerialNumber: 12

Type: A
SerialNumber: 16

Entity

Entity

Type: B
SerialNumber: 14

Entity
Type: C
SerialNumber: 18

Type: A
SerialNumber: 05
Number of Entities: 7
Day: Monday
Time: 14:35

Attributes

Variables

Figure 4.1 Attributes and variables in a simulation model

The difference between a variable and an attribute is that attributes are characteristics of
every individual entity. It is as it were, a small note with some values that every entity
carries with it. Entities can not see or change each others attributes. Variables however, are
writable and readable by all entities in the model. You can imagine the list of variables as
one central list on the wall that is accessible by all entities.

4.1.1 Data module: Variable


Functionality: The variables that you use in your simulation model are defined in the Variable
module. A variable is a unique characteristic of the model and can be read and changed by
all entities in the model. You can find the Variable module in the Basic Process panel.
Examples of practice: Examples of variables are:

The time (N.B. also the simulation clock is a variable!).

The number of people in a shop.

The average waiting time of people calling a call center.

Weather influencing the model.

The exchange rate of the Dollar.

Properties: A new variable is created by selecting the variable icon in the Basic Process panel and
by double clicking in the spreadsheet window on the Double-click here to add a new
row. Inserting data on this variable is done in the spreadsheet itself, or by entering the data

Basic entity processes

- 32 -

in the dialog box of the Variable module (see Figure 4.2). This dialog box can be opened by
double clicking on the row of the variable.

Figure 4.2 Variable dialog box

In Table 4.1 We discuss the Variable dialog box


Tip:

It is not always necessary to define a variable yourself. When, for the first time, you ascribe
a value to a variable in the Assign module (see paragraph 4.1.3), Arena will automatically
define this variable.
Fieldname:

Explanation:

Name

Here you can choose a unique name for the variable.

Rows

When you want to define a one or two dimensional variable, this is


where you specify the number of rows.

Columns

When you want to define a two dimensional variable, this is where you
specify the number of columns.

Clear Option

Here you determine when the variable will be reset to the initial value(s).

Initial Values

This is where you can input the initial value(s) for the variables. Default
value is 0.

Table 4.1

The Variable dialog box in detail

Animation: It is useful to show the current value of a variable in the model in the animation. This
can be done in several ways of which we will discuss one here:
The value of a variable can be displayed during a simulation run by using a counter. You
can position a counter in the model window using the "Variable" (

) button from the

Animate toolbar. If you click on this button, the dialog box shown in Figure 4.3.

Figure 4.3 Variable dialog box (Animation)

Basic entity processes

- 33 -

Fieldname:

Explanation:

Expression

Here you select the name of the variable from the pull down list, or you enter the
name of the variable. It is also possible to enter a formula (calculation), possibly with
the help of the Expression Builder (see APPENDIX D)

Format

Select the format in which the value of variable should be displayed. A * stands for
a number, the . Is the decimal.

Fixed Decimal Point

When you have chosen for a decimal underFormat, this is where you can specify
whether this decimal should be fixed or whether the decimal is allowed to move to
the right when the value left of the decimal does not fit the text box anymore.

Transparant

Here you can select whether or not the text box should have a border or
background.

Alignment

Here you specify if the value should be aligned left or right.

Area, Border, Font

With these buttons you call up the dialog boxes in which you can set the background
colour, the border and the font.

Table 4.1 The Variable dialog box (Animation) in detail

When you have filled in this window and click OK, the cursor turns into a cross-hair.
With a click-and-drag movement you can place the text box in the model window.
Except for this possibility you can also animate the value of a variable with a Level (
a Histogram (

) and a Plot(

),

). We will not go into these ways of animating here.

4.1.2 Attributes
Functionality: An attribute is a characteristic of an entity.
Examples of practice: Examples of attributes are:

Your name

Your age

Brand of a car

Client type (business or private)

The time you have been on hold at a call center

Properties: There is no module for attributes in Arena. To define attributes, the Assign module is
used (see next paragraph).

4.1.3 Flowchart Module: Assign


Functionality: The Assign module is used to define attributes and variables and in order to assign
Assign 1

values to them.
Properties: By dragging the module into the model window and double clicking it (or by double
clicking the row that corresponds to this module in the spreadsheet window) you call up the
dialog box of the Assign module as is shown in Figure 4.4.

Assignment:
The defining of, the
allocation of or the
changing of an
attribute or variable

In one Assign module you can specify several assignments. By clicking the button Add
you open the Assignments dialog box (Figure 4.4, right). In this dialog box you model one
assignment. By selecting an assignment from the list Assignments and by clicking the
button Edit you can change an existing assignment. With the button Delete you
can delete the selected assignment.

Basic entity processes

- 34 -

Figure 4.4 Assign and Assignments dialog box

Fieldname:

Explanation:

Name

Here you can choose a unique name for the module.

Assignments

This list gives an overview of all assignments that has been modelled in
this Assign module.

Type, choose from:

Variable
Attribute
Entity Picture
Entity Type
Other
Variable name
(If Type = Variable)

Attribute name
(If Type = Attribute)

Entity Picture
(If Type = Entity Picture)

Entity Type
(If Type = Entity Type)

Other
(If Type = Other)

New Value
(If Type = Variable, Attribute or
Other)

Table 4.1

You
You
You
You
You

want
want
want
want
want

to
to
to
to
to

assign a value to a variable.


assign a value to an attribute.
assign a new picture to an entity.
assign a new entity type to an entity.
model a different type of assignment.

Here you specify the name of the variable to which you want to assign a
value, or you select this from the list with existing variables.
Here you specify the name of the attribute to which you want to assign a
value, or you select this from the list with existing attributes.
Here you specify the name of the picture to which you want to assign a
value, or you select this from the list with used variables.
Here you specify the name of the type you want to assign to an entity,
or you select this from the list of used types.
Here you specify the name of Other Type to which you want to assign
a value.
Enter here the value you want to assign to the variable, the attribute or
Other Type.

The Assign and Assignment dialog boxes in detail

Let op: It is allowed to only assign numeric values to attributes and to variables. Arena is incapable
of evaluating strings. In case you do want to use textual values, you will have to link the
textual values to a numeric value. This is possible with the Statics element from the
Elements panel. This is not further discussed here.
Tip:

You can enter a value in the New Value field. On the other hand it is also possible to
have this value determined by an expression. In Arena you can build an expression with the
Expression Builder. It can be found by right clicking in the field New Value and
choosing the option Build Expression. The Expression Builder will be covered in detail in
APPENDIX D.

Basic entity processes

- 35 -

4.2 ROUTING TROUGH THE LOGIC: DECIDE


Entities do not always follow the same path through the modelled system. When entities
can follow different paths through the model, at least at one place in the model a decision
has to be made where it is determined by which route the entity will continue through the
logic of the model. You can use the Decide module for this in Arena; we will discuss this
module in paragraph 4.2.1. In paragraph 4.2.2 we will go into a couple of examples of the
Decide module.

4.2.1 Flowchart Module: Decide


Functionality: In the Decide module (see picture), it is determined which path an entity should
follow continuing through the model. This choice can be based on a probability
distribution, on an attribute of an entity or on other conditions.
The shape of the Decide module depends on the number of routes that can be chosen in the
module. When there are two possible choices, the Decide module in the model window
looks like the top left picture. At that moment the module has a True and a False exit.
Both exits come with a counter that keeps track of how many entities have left the module
through the concerning exit.
When there are more than two possibilities, the module will look like the bottom left
picture. The Decide module has exits on the right, marked with a label, and an Else exit.
The labels correspond to the chance that the concerning exit will be chosen, when you
make use of a decide by chance. When you base the choice on a condition, this condition
will be shown as a label.
Examples of practice: You can use a Decide module when you want to model one of the following
situations:

70% of the customers of a supermarket do not go by the bakery department.

In a call center business clients are served on a different department than private
clients.

3% of all products do not pass quality control in a factory.

Properties: When the Decide module has been dragged into the model window, you call up the
accompanying dialog box by double clicking on the module. The dialog box of Figure 4.5
is opened. In Table 4.1 we discuss this dialog box more in depth.

Basic entity processes

- 36 -

Figure 4.5 The Decide dialog box.

Fieldname:

Explanation:

Name

Here you can choose a unique name for the module.

Type, choose from:

2-way by Chance
2-way by Condition
N-way by Chance
N-way by Condition
Percent True

Two possibilities can be chosen, based on chance


Two possibilities can be chosen, based on condition
More possibilities can be chosen, based on chance
More possibilities can be chosen, based on condition(s)
Here you specify the chance that an entity leaves the module via the
True exit.

(If Type = 2-way by Chance)

Determine the condition


(If Type = 2-way by Condition)

If Here you choose whether the decision is based on a variable, an


attribute, the entity type or on a formula.

Named Here you choose the name of the variable, the attribute or the entity
type that will be used for the decision.

Is Here you choose the evaluator that applies.


Value Here you choose the value of the attribute or variable, or specify the
formula here.

Percentages
(If Type = N--way by Chance)

Conditions
(If Type = N--way by Condition)

Table 4.1

Tip:

The list with chances is shown here. With the button Add, Edit
and Delete you can add, change and delete chances.
The list with conditions is shown here. With the button Add, Edit
and Delete you can add, change and delete conditions. Defining
conditions takes place in almost the same way as under Determine the
condition (see above).

The Decide dialog box in detail

When you have selected the type N-way by Chance in the Decide module, the chances
you specify do not have to add to 100%. When the sum of the specified chances is less than
100%, Arena will let the entities with the remaining probability leave the module via the
Else exit. However, the sum of the chances can never be larger than 100%!

Tip:

Sometimes you would like to assign an attribute to entities based on a probability


distribution. For example: The assigning of a processing time for a specific process. This
can be done with the above mentioned Decide module. However it is also possible to do it
with only one module: the Assign module, see Figure 4.6

Figure 4.6 Disc function in the Assign module

Basic entity processes

- 37 -

In this way of modelling the two modules, the Decide module and the Assign module are as
it were combined. The formula DISC (0.5,Male,1,Female) represents a discrete probability
function that constructed in the following way:

50% of the entities flowing through the module have the value Male for Gender

50% of the entities flowing through the module have the value Female for Gender

Notice that the formula has been constructed cumulatively: the final "probability value"
therefore

is

always

1!

Male

and

Female

are

Statics

(constants)

with

e.g.

the values 1 and 2.

4.2.2 Examples
We illustrate the operation of the Decide Module by using two simple models.
Example 1:
In the model above, 20 entities are created in the Create Module. With
a 50% chance of an entity leaving the system via Dispose 1 and the
remainder leaving via Dispose 2.

We have therefore filled in the Decide dialog box as follows:

Below it is shown what the model looks like at the end of the run:

At the end of the run, 11 entities have left the system via Dispose 1 and
9 entities via Dispose 2. The fact that the distribution is not exactly
50%-50% is the result of using a probability distribution. As the
number of entities created tends towards infinity, the distribution over
Dispose 1 and Dispose 2 will tend towards 50%-50%.
Replicatie:
A model run in which
the simulation model is
ran for the period
specified as run length.

Basic entity processes

Follow the steps below to see how the distribution of entities over both
Dispose Modules varies for the different replications:

- 38 -

Open the dialog box "Run Setup" and select the "Replication
Parameters" tab. Now enter 5 for "Number of Replications" (or an
arbitrary other number), and check both of the boxes in "Initialize
Between Replications".

Now select the "Run Control" tab and ensure that "Pause Between
Replications" is checked.

Start the simulation using the

button. When a replication

finishes, use the same button to start the next one. Note how the
results differ per replication.

In order to record the total distribution after a number of


replications, do not check the option Statistics under Initialize
Between Replications in the "Replication Parameters" tab of the
"Run Setup" dialog box.

Example 2:
In the model below we create 30 entities, to which we assign a serial
number in the way we did in a previous example. The entities with the
serial numbers 1 through 5 leave the system via Dispose 1, the entities
with the serial numbers 6 through 15 leave the system via Dispose 2
and the entities with the serial numbers 16 through 30 leave the system
via Dispose 3.
When the run has finished we therefore expect:

that the Dispose 1 counter displays 5;

that the Dispose 2 counter displays 10;

that the Dispose 3 counter displays 15;

and that the Check counter (the so-called "Check Module")


displays 0.

Step 1: Create module: Arrival of entities


The entities arrive once every minute and at most 30 entities are
allowed to arrive.

Step 2: Assign module: Assigning a serial number (tracking number)


The assigning of a serial number is demonstrated in the figure below.
First of all a variable was created of which the value is raised with 1
every time and entity passed through the module.
Next we have assigned the value of this variable to an attribute with
the result that every entity gets a different serial number.
Basic entity processes

- 39 -

Let op:

The order in which you place the assignments is the order in which they
will be executed. Thus, in this situation, first the value of the variable
NrOfEntities is raised with 1 and after that this value is assigned to the
entity. This means that entity 1 gets the value 1 for the attribute
EntityNumber and that entity 30 gets the value 30 as the value of the
attribute. If you would invert this order, you would first get an attribute
and after that the variable would be raised with 1. That means that:
entity 1 has value 0 for the attribute and that entity 30 has value 29 for
the attribute.

Step 3: Decide module


For the Decide module we have filled in the dialog box as follows:

Let op:

Pay attention to the expression of your conditions and the order in


which you specify them. In the Decide module the specified conditions
are checked (whether they are true or not) in the order of the list. If we
would invert the order of the conditions, all entities would go to the top
exit of the module!

Step 4: The model:


The model appears as follows:

We run the model. The diagram below shows how the model will
appear when the run is finished:

Basic entity processes

- 40 -

So, the model functions satisfactorily!


Note, that in this model no probability distributions are used, and
therefore there should be no spread in the results of this model. If you
run various replications, the result will be the same every time.

4.3 BATCHING, SEPARATING AND COPYING: BATCH AND SEPARATE


In this paragraph we discuss several modules that involve the batching, separating and
copying of entities. In paragraph 4.3.1 we deal with the Batch module. This is a module that
batches entities. In the following paragraph we look into the Separate module, a module
that can both separate and copy entities. Afterwards we discuss an example in 4.3.3. Finally
in paragraph 4.3.4 we elaborate on the Match module. This module also batches entities,
but in a different way then the Batch module.

4.3.1 Flowchart Module: Batch


Functionality: The Batch module from the Basic Process panel is used to batch entities (temporal or
permanent) into one entity. You can specify how many entities should be batched, whether
all entities should be batched, or if a specific property should be taken into account.
Furthermore you can specify whether the batch should be temporal or permanent.
Examples of practice: Examples of situation that can be modelled with the Batch module:

Putting bottles in a crate.

Packing goods for one customer.

Putting together boxes on a pallet.

Properties: The Batch module is placed in the model window. By double clicking you call up the
dialog box of the module (see Figure 4.7). The possibilities of this dialog box we discuss in
Table 4.1.

Figure 4.7 Batch dialog box

Basic entity processes

- 41 -

Fieldname:

Explanation:

Name

Here you can choose a unique name for the module.

Type, choose from:

Permanent
Temporary

The batch is permanent, it can not be undone.


The batch is temporal, later the batch can be undone with the help of
the Separate module (see paragraph 4.3.2).

Batch Size

Here you enter how many entities should be batched.

Save Criterion, choose from:

Specify here how the value of attributes (defined by yourself) of the


resulting entity of the batch, should be calculated from the attributes
before the batch.
The attribute value(s) of the first entity in the batch will be used as
attribute value for batch.
The attribute value(s) of the last entity in the batch will be used as
attribute value for batch.
The sum of the attribute value of all entities in the batch will be used as
attribute value for batch.
The product of the attribute value all entities in the batch will be used as
attribute value for batch.

First
Last
Sum
Product
Rule, choose from:

Any Entity No distinction will be made between entities. All entities entering the
module can be batched together.

By Attribute Entities will be batched based on a specific attribute value. Entities with
the same value for this attribute will be batched.

Expression
(If Rule = By Attribute)

Table 4.1

Specify here the name of the attribute on basis of which the entities will
be grouped, before being batched.

The Batch dialog box in detail

Animation: The Batch module comes with a counter and a queue. The counter indicates how many
entities have to wait in the Batch module to be batched. Waiting entities are shown in the
queue. By default this queue has the name <<Module name>>.Queue. This name can not be
changed and it is not possible, when you batch entities grouped on an attribute value, to
animate a separate queue for every group.

Basic entity processes

- 42 -

4.3.2 Flowchart Module: Separate


Functionality: The Separate module from the Basic Process panel gives two possibilities: You can
copy entities with it and you can also split a temporary batch with it. Below we will look
into the two possibilities separately.

Separate: Copying
Functionality: In the first case, the module looks like the picture on the left. The original leaves the
module through the Original exit and the copies leave the module through the
Duplicate exit. All copies, will have the attribute values of the original (except for cost
information, see Table 4.1).
Examples of practice: In this case you could use the Separate module for the following situations:

Copying of a document.

Separating sheets of paper that are glued together.

Properties: The Separate module is placed in the model window. By double clicking the module
you call up a dialog box as is shown in Figure 4.8. For utilizing the copy-funtion, you
choose under Type, Duplicate Original. In Table 4.1 we discuss the possibilities of the
dialog box.

Figure 4.8 Separate dialog box (copy-function)

Fieldname:

Explanation:

Name
Here you can choose a unique name for the module.
Type, choose Duplicate Original

Make one or more copies of the entity that entered the module.

Percent Cost to Duplicates

Here you determine which part of the value of cost-related


attributes of the copied entity is given as a value to the copies.

# of Duplicates

Here you specify how many copies of the original entity should be
made.

Table 4.1

Basic entity processes

The Separate dialog box (copy-function) in detail

- 43 -

Separate: Split existing batch


Functionality: When you want to use the Separate module to undo an existing batch (batch, see
paragraph 4.3.1), the module appears as the picture on the left. When a batched entity
passes through the module, the batch will be made undone (separated) and all entities
continue their way through the system; you can specify if you want them to continue with
their original attribute values, or if they should copy the attribute values of the temporary
batch.
Examples of practice: In this case you could, for example, use the Separate module in the
following situations:

The unpacking of a parcel or pallet.

The removing of a bottle from a crate.

Properties: The Separate module is placed in the model window. With a double click on the module
you call up the dialog box as in Figure 4.9. To split an existing batch you select under
Type, Split Existing Batch. In Table 4.1 we discuss the possibilities of this dialog box.

Figure 4.9 Separate dialog box (Split Existing Batch)

Fieldname:

Explanation:

Name
Here you can choose a unique name for the module.
Type, choose Split Existing Batch

Undo a temporary batch (split).

Member Attributes, choose from:

For standard attributes (Entity.Type, Entity.Picture, Entity.Station,


Entity.Sequence, Entity.Jobstep, and Entity.HoldCostRate) you
have to specify in which way the attribute values should be
distributed over the originals.
Retain Original Entity Values Copy the original values.
Take All Representative Values Copy all values from the temporary batch.
Take Specific Representative Values Copy only certain values of the temporary batch.

Attributes:
(If Member Attributes = Take Specific
Representative Values)

Table 4.1

Basic entity processes

Here a list of attributes is displayed for which after separation, the


originals contain a copy the attribute values of the batch-entity.

The Separate dialog box (Split Existing Batch) in detail

- 44 -

4.3.3 Batching and separating: An example


In this paragraph we demonstrate the use of the Batch and Separate modules on the basis of
an example.
Case Beer brewery:
Every day a beer brewery receives crates of returned beer bottles. The
bottles in these crates must be cleaned before they can be refilled.
A crate contains 24 bottles. Exactly every two minutes a (full) crate
arrives at a cleaning machine. On arrival at the cleaning machine all
bottles are taken from the crate and are put into the cleaning machine.
The machine has sufficient capacity to clean 24 bottles at a time. The
cleaning time per bottle depends on the degree of contamination and
takes between 0.5 and 1.5 minutes. Normally a bottle is cleaned in one
minute. When cleaning is finished, the crate is filled with 24 clean
bottles. No account is taken of the need to clean crates.
Step 1: Modelling
The following diagram can be derived from the case description:

Arrival crates

Taking bottles from


crates

Cleaning bottles

Filling crates with


the cleaned
bottles

The diagram above will be made into an Arena model:


Step 2: Create module
We model the arrival of a crate at the cleaning machine using the
Create Module. Because the bottles are cleaned individually, we view a
bottle as an entity. Thus when a crate arrives, 24 bottles must be
created. We therefore fill in the Create Module dialog box as follows:

Step 3: Batch module


Now we must batch the created bottles to model the crate. To do so we
use the Batch Module, which we will set up as follows:

We select a temporary batch, because we will split the batched entities


before they enter the cleaning machine. Furthermore, there is only one
type of beer bottle, so we do not need to fill the crates with bottles that
Basic entity processes

- 45 -

have a common characteristic. For Rule we therefore select "Any


Entity".
N.B. The batching of entities is not strictly necessary here. After all, the
entities that will form the batch are created at exactly the same time
and there is no time spread in the processing of the entities prior to
them being cleaned. In other words: the entities will arrive
simultaneously at the cleaning machine, even if we do not batch them.
However, for the sake of completeness, we do model the creation of a
crate and the splitting of entities that together form the crate.
Step 4: Separate module
A crate that arrives at the cleaning machine must be emptied and the
bottles must be placed in the cleaning machine. We therefore split the
existing batch. We use a Separate Module to do so, filling in the dialog
box as follows:

Step 5: Process module


Following this, the bottles enter the cleaning machine. To do this we
use the Process Module and set it up as shown in the next figure.
All bottles from one crate enter the cleaning machine simultaneously
and all 24 are processed at the same time. In addition, because the
maximum cleaning time is 1.5 minutes and the time between arrivals of
crates is 2 minutes, there will never be more than 24 bottles in the
machine at any one time. Therefore it is not necessary to create a
resource. We only need to specify an individual delay for each bottle.

Basic entity processes

- 46 -

Step 6: Batch module


After cleaning, the bottles are placed back in the crate. We model this
with a Batch Module.

As opposed to the previous Batch Module, we now select the


Permanent type. After all, the entities no longer need to be split in the
remainder of the model.
Step 7: Completion
The model is completed with a Dispose Module, for which we accept
the default settings. The model will appear as follows:

When we have saved the model, it is ready to run. Run the model for a
certain time, after which you can examine the counters below the
various modules.

4.3.4 Match module


Functionality: In the Match module from the Advanced Transfer panel, entities can be placed in
several queues by using the different entrances supplied with the module. The Match
module brings together entities from these different queues. This can be based on an

Match 1

attribute value, after which these entities leave the module simultaneously through the exits.
Examples of practice: Examples of situations that you could model with a Match module:

Waiting till a bottle and a crown cap are available to seal a bottle.

Waiting till all dishes are ready before a waiter can start serving his table.

Picking up an ordered pizza.

Properties: The Match module is placed in the model window. The module can bring together at
least 2 and at most 5 entities. The number of entities you want to bring together coincides
with the number of entries, queues and exits. Entities enter the Match module through
various entrances. A match is made when every queue contains at least one entity and in
case a match is based on an attribute value if every queue contains at least one entity and
if those entities have the same attribute values. Below you can find the dialog box of the
Match module. In Table 4.1 we discuss the properties of this dialog box.

Basic entity processes

- 47 -

Figure 4.10 Match dialog box

Fieldname:

Explanation:

Name
Here you can choose a unique name for the module.
Number to Match

Here you specify the number of entities that should be matched. The
minimum is 2, the maximum is 5.

Type, choose from:

Here you specify how should be matched:

Any Enitities The entities will be matched in a random order, as long as they arrive in
different queues.

Based on Attribute Entities in the different queues will be matched if every queue contains at
least one entity and if those entities have equal attribute values.

Attribute name:
(If Type = Based on Attribute)

Table 4.1

Here you specify the name of the attribute, based on which should be
matched. A match takes place when the attribute values of the specified
attribute are equal for the waiting entities in the different queues.

The Match dialog box in detail

Animation: The Match module comes with a number of queues, depending on the number that will
be matched. These queues can be used in the animation.
The Match module does not batch entities. If you want the matched entities to be batched
together, you connect a Batch module to all the exits of the Match module. In the Batch
module you specify the number of matched entities as the number of entities to be batched.

4.3.5 Example
Sealing of bottles
In a soft drinks factory filled bottles are sealed mechanically with a
crown cap. To be able to seal a bottle, a filled bottle and a crown cap
are required.
In the picture below is demonstrated how we have modelled this:

Bottles and crown caps originate from different processes. In the


example it is not important where these entities come from; therefore
they are generated in a Create module.
Both Create modules are connected with an entrance of the Match
module. Bottles enter through the top entrance and are placed in the
top queue; crown caps enter through the bottom entrance and are

Basic entity processes

- 48 -

placed in the bottom queue. The dialog box of the Match module looks
as follows:

We set the Type to Any Entities. In this particular case we do not


need to match the entities based on attribute because it does not
matter which crown cap is put on which bottle.
The Match module matches entities when in every queue at least one
entity is present. The entities that are matched are then batched
together in the Batch module. Afterwards by using the Process module
Close Bottle, the real sealing is modelled. We also could have left out
the Batch module and we could have then connected one exit of the
Match module to the Process module Close Bottle and connected the
other to a Dispose module.
If we would not have first brought together a bottle and a crown cap in
a Match module, but if we would have sent them directly to a Batch
module, an error would appear in the model because at that time also
two bottles or two crown caps can be batched together in the Batch
module. This can not be solved with a batch based on attribute value
because in it is impossible to specify in the Batch module that an entity
of the type bottle has to be batched together with an entity of the
type crown cap.
If two types of bottles and crown caps exist (e.g. for Cola and apple
juice), they have to be matched based on an attribute value. Bottles of
the type apple juice then can only be brought together with crown
caps of the type apple juice and bottles of the type Cola can only be
brought together with crown caps of the type Cola.

Basic entity processes

- 49 -

4.4 EXERCISE ASSIGNMENT


Case description: Pizzeria
The customers of a pizzeria can order a pizza by telephone. The employee of the pizzeria accepts the
order and informs the customer how long it will take before he can pick up his order. An order will
always take a minimum of 6 minutes. The chance that it will be more than 30 minutes before a
customer can pick up his order is negligibly small. Normally it takes 15 minutes to carry out an order.
The pizzeria receives a customer order every 30 minutes. You may assume that the employees of the
pizzeria immediately start to carry out every order. Furthermore, you may assume that the customers
will pick up their order at the time specified by the pizzeria.
Assignment: Create a simulation model of the situation described above.
Tip: Create one entity at a time and split it in a customer and an order.
When the order is picked up, these two entities are batched.

Basic entity processes

- 50 -

5
Modelling and animating movement
INTRODUCTION: You will already have noticed that the animation displayed by Arena as standard during a
run is rather limited. However, animation can increase the communicative value of the
model and therefore it often deserves extra attention. In this chapter, we discuss how we
can extend the animation in a simulation model and the modules that we need to do so.
Furthermore the movement in the model between various locations where processes take
place also has a value for the model itself; the locations indicate where activities take place
and the movement between these locations brings along a delay for the entities.

OBJECTIVES:

Having completed the chapter:


you will have an understanding of the Station and Route modules.
you will have an understanding of how a Sequence works.
you are capable of modelling and animating movement of entities between two stations.

Modelling and animating movement

- 51 -

5.1 MODELLING AND ANIMATING MOVEMENT OF ENTITIES


During a simulation run, Arena shows as standard how entities in the flowchart move from
module to module. This is, however, different than simulating the real movements. Firstly,
real movements take time, whereas the animation of entities over the connectors takes no
simulation time. Secondly, a movement changes the (physical or virtual) location of an
entity, the animation of entities over the connectors in principle changes nothing to the
simulated location of an entity.
We will therefore examine how we can model and then animate the movements of entities
through the simulation model. To be able to model the movement, we must ensure that in
the simulation model an entity is always at a location. In Arena we model this with
Stations which we will discuss paragraph 5.1.1. Furthermore a route with accompanying
route time has to be specified on the moment that the entity has to start making the
movement. In Arena we do this with the Route module that we will discuss in paragraph
5.1.2. To animate the movement we have to place stations in the model window and we
have to specify how the entity travels from A to B.
Tip: To avoid confusion, it makes sense to turn off the animation of entities over the connectors
when you want to animate the movement of entities. You do that via the "Object" menu and
then "Animate Connectors", or via the "Animate Connectors" button from the Run
Interaction toolbar. When, at a later point in time, you need the movement of the entities
over the connectors to track down errors in your model you can always switch it back on.

5.1.1 Station
Functionality: The physical or logical location of an entity is defined in the Station
Module that can be found in the Advanced Transfer panel. An entity that passes the Station
Station 1

Module is from that moment on, present at a fixed location in the simulation model. The
location of an entity only changes when it passes another Station Module or when the
attribute Entity.Station has been changed.
Examples of practice: Examples of situations in which you could use stations are:

Cities and villages.

Different places in a postal office (entrances, counters, etc.).

Departments in a warehouse (loading platform, unloading platform, different


scaffolds, etc).

Functionality: The Station module is a flowchart module. Therefore you place it in the model
window and connect it from there with other modules. The exit of the module has to be
always connected with a next module. The module does not need to have a preceding
module because entities are transferred from other stations to this module; for example by
means of the Route module. More about this can be found in paragraph 5.1.2.

Modelling and animating movement

- 52 -

You open the module by double clicking on it. Next the dialog box of Figure 5.1 appears.
In Table 4.1 we go into the possibilities of this dialog box

Figure 5.1 Station dialog box

Fieldname:

Explanation:

Name

Here you can choose a unique name for the module. This name will
appear in the module.

Station Type, choose from:

Station
Set

The module represents an individual station.


The module represents a set of stations with the same characteristics.

Station Name

This name corresponds to the name of the animation picture of the


modelled station. Notice that the Station Name is the indication for
the regarding location. You use this name to route entities to this
station.

Parent Activity Area

Here you can specify if the station belongs to a collection of stations.


Arena will then aggregate the output for such a collection. This is handy
in case you model e.g. more than one station within one department
and when you want to have output on that department.

Table 5.1

The Station dialog box in detail

Animation: A station is animated by clicking on the button Station (

) from the Animate

Transfer panel. Next the dialog box of Figure 5.2 appears.

Figure 5.2 Station dialog box (Animation)

Modelling and animating movement

Figure 5.3 Animation of a station

- 53 -

In Table 5.1 we discuss the Station dialog box.


Fieldname:

Explanation:
Choose here the name of the modelled station that is represented by this

Identifier

animated station.

Parking

When you tick this checkbox, the transporters that have stopped on this
location will be displayed.

Auto Connect, choose


from:

Here you can switch on the option to have this station automatically connected
to a next station that you place. In the next placed station you also have to
switch on this option.
This switches off the option.
With this the connection is made by means of a route (see paragraph 5.1.2)
With this the connection is made by means of a segment (see paragraph
6.2.2)
With this the connection is made by means of a distance (see paragraph 6.1.2)

None
Route
Segment
Distance
Colour

Table 5.1

With this button you call up a dialog box in which you can change the
displayed colour of the station.

The Station dialog box (Animation) in detail

When you have filled in the dialog box, you click OK. The cursor changes into a
crosshair. You then place the station by clicking on the spot when you want to have the
station. In Figure 5.3 you can see what a positioned station looks like. The settings of this
station can be changed by double clicking on it. The dialog box of Figure 5.2 is then
displayed.

5.1.2 Route
Functionality: The Route Module is used to model the movement of an entity from Station
A to Station B. You can find the Route Module in the Advanced Transfer panel. The
Route 1

distinguishing feature of the module is that it only has an entrance and no exit. This is
logical: Entities move from the Route Module to a specified Station Module and then
follow their route from the Station Module through the flowchart.

Examples of practice: Examples of the situation in which you can use the Route module:

Customers walking through a supermarket.

E-mails going from a sender to a recipient.

Properties: The Route module is positioned in the model window. By double clicking you call up
the dialog box of Figure 5.4. Its properties are discussed in Table 5.1.

Figure 5.4 Route dialog box

Modelling and animating movement

- 54 -

Fieldname:

Explanation:

Name

Here you can choose a unique name for the module. This name will
appear in the module

Route Time

Here you should choose one of the possible distributions for the route
time of an entity to its destination and fill in the associated
parameters.

Units

Here you specify the unit of time that applies to the route time.

Destination Type, choose from:

Station The destination of the entity is a station.


Attribute The destination of the entity is specified in an attribute.
Sequential The destination of the entity is specified as a sequence (sequence,
(see paragraph 5.2).

Expression The destination of the entity is expressed in a formula.


Station Name

Fill in the name of the destination station.

(If Destination Type = Station)

Attribute Name
(If Destination Type = Attribute)

Expression
(If Destination Type = Expression)

Table 5.1

Fill in the name of the attribute that contains the destination of the
entity.
Fill in the formula that is used to determine the destination of the
entity.

The Route dialog box in detail

Animation: To animate the route in a simulation run you have to make a connection between the
two stations of the route. To do this you click the Route button ( ) from the Animate
Transfer toolbar. Next the dialog box of Figure 5.5 appears. Usually you can accept the
default settings of this dialog box, but for the sake of completeness we discuss the dialog
box in Table 5.1.
Let op: The connection you make here is meant only for the Animation purposes. This is a different
type of connection than the connection between two modules. The route-connection of the
Animation can be compared to the queues, resources and values of variables that we have
used before on screen in the Animation.
The length of the route you draw on the screen and the route time that you specify in the
Route module are independent of each other. You can draw a long route that takes one only
second for an entity to travel over it, or you can draw a short route that takes an hour for an
entity. For a good Animation it is of course important that the lengths of the routes are
recognizable for the user.

Figure 5.5 Route dialog box (Animation)

Modelling and animating movement

- 55 -

Fieldname:

Explanation:

Snap mode, choose


from:

Center
Area

The start and end point of the route are placed exactly in the middle of the start
and end station.
The start and end point of the route are placed on the spot of the mouse cursor
on the moment that a click is made.

Free Path

If ticked, Arena automatically places a start and/or end station when the start
and/or end station had not been placed already. These stations however, have
no name yet!

Rotate

If ticked, the entity rotates during the route in the direct of the route.

Flip

If ticked, the entity can be animated mirrored during a run. If not ticked, a car
for example drives backwards when the route is used in the opposite direction.

Points

Here is specified of how many (movable) points a route exists. This value can be
changed, but only after the route has been placed.

Colour

Table 5.1

With a click on this button you can set the colour of the route.

The Route dialog box (Animation) in detail

When you have entered the preferred settings in the dialog box, you click OK. The cursor
changes into a crosshair. You position the cursor in the start station, you click once and you
draw a line to the end station. At the end station you again place the cursor in the station
and you click. Now a (standard blue) line is visible between these two stations (see Figure
5.6).

Figure 5.6 Examples of a route Animation

To get an Animation as the right picture of Figure 5.6 show, you click between the two
stations on spots where you route should bend.
Tip:

If you hold the Shift key while drawing the routes, it is easier to draw straight lines.

5.1.3 Example
Movement of entities
In this example we quickly discuss the movement of entities over a
route. Every hour one entity arrives to travel over a specific route. The
entity is moved in the model from Station A to Station B and this takes
on average half an hour. Next the entity leaves the model.
Step 1: Modelling
The above mentioned model is very easily displayed in the conceptual
model given below:

Arrival
entity
at Station A

Routing Entity
to Station B

Entity
leaves
system

Step 2: CREATE MODULE


In the Create module we fill in that the interarrival time is constant one
hour:

Modelling and animating movement

- 56 -

Step 3: Station A
The entities that enter automatically arrive at Station A when you have
created this and connected to the Create module. Station A we fill in as
follows:

Step 4: ROUTE MODULE


The Route module we then fill in as follows:

This module does not have an exit because it says in the module where
the entity should go to. In this case it goes to Station B.
Step 5: STATION B
In the same way as the dialog box of Station A, we fill in the dialog box
of Station B. This station only does not have any incoming connector
because the entities go to this station via the route. At the exit the
station does have a connector that leads to the Dispose module.

Modelling and animating movement

- 57 -

Step 6: DISPOSE MODULE AND MODEL


At the end of the model we place a Dispose module:

The model in total then looks like:

Step 7: ANIMATION
Now we will add the Animation. By clicking on the route Animation
button (

) in the toolbar, the following screen appears:

We choose the default settings. When we press OK, we can draw a


line. At the ends of the line the stations are positioned at once. By
double clicking on the stations you following screen appears:

Here you can specify which Station is should be. The final Animation
during the run will look like:

5.2 SEQUENCES
This paragraph addresses one module, the Sequence Module from the Advanced Transfer
panel. We will first address the theory behind the Sequence Module and then we will
illustrate its operation with an extensive example.

Modelling and animating movement

- 58 -

5.2.1 Sequence module


Functionality: When it is known in advance how the various entities flow through the
system, the Sequence Module shown to the left can be used. A sequence is a list of stations
in a certain order according to which an entity has to flow through the mode. It is specified
in the attribute Entity.Sequence which sequence exactly an entity has to follow. The entity
keeps track of the stations on its list it has already passed and what its next destination is. In
the Route module (see paragraph 5.1.2) you do not anymore have to specify what the
destination of the entity will be, but you only have to enter that the entity has to travel to its
next destination of the sequence. The route times you can also indicate in the sequence.
Examples of practice: Examples of situation that can be modelled with sequences:

Customers that walk through a supermarket in different ways.

Cars that follow a different route through the factory based on their equipment.

Properties: The Sequence module is a data module. If you want to create a new sequence you select
the Sequence module from the Advanced Transfer panel. Next you double click on the
spreadsheet on Double-click here to add a new row. To call up a dialog box as shown in
Figure 5.7, you double click on the row of the sequence that you want to create or edit.

Figure 5.7 Sequence dialog box

Fieldname:

Figure 5.8 Steps dialog box

Explanation:

Name

Here you specify the name of the sequence

Steps

In this list the stations are displayed that the entity has to travel by in that order.
When you click the button Add you see the dialog box of Figure 5.8 with the
following options:
The name of the station to which the entity has to go in this step.
You can give this step a name, but that is not compulsory.
If you assign names to steps, you can specify in this field what the next step should
be. When you leave this field blank, Arena chooses the next step from the list
Steps.
For each step you can execute assignments. This procedure is equal to the one
described in chapter 4.

Station Name
Step Name
Next Step
Assignments
Table 5.1

The Sequence and Steps dialog box in detail

When you have defined the sequences you can assign them to entities. This is done with the
Assign module (see chapter 4). The figure below shows how you can assign a sequence to
an entity.

Modelling and animating movement

- 59 -

Figure 5.9 The assigning of a sequence to an entity

It will happen frequently that for every step of a sequence, one of the properties (attributes)
of an entity has to be altered. For example, assume that the transport times between two
stations differ per entity type. In the Route module we can not integrate a fixed time; all
entities then would use that route time independent of their sequence.
A possible solution to this problem would be to add a Decide module, followed by
numerous Route modules with a different route time each. But there exists a far more
elegant way to solve this. It is possible to integrate an additional attribute (e.g.:
routetime) in the assign-part of the sequence. In an Assign module, that can be added to
every process step, you can enter an attribute route time with the correct value for every
entity. In this way every single entity knows where it has to go and how long it will take to
get there.
Other attributes that depend on the type of entity as well as on the process step, can be
defined in the assign-part of the sequence. When an attribute change takes place in a
process step that is the same for all sequences, it is often more clear to place an Assign
module in the process logics instead of using the assign-part in the sequences.

5.2.2 Examples
Example 1:
There are two types of entities: Type A and Type B. Once every 5
minutes in total 40 entities are created, of which approximately 75% is
of type A and the remainder of type B. Both entities start at the station
Home. From there type A takes a route of 3 minutes to station Exit 1.
Type B takes a route of 6 minutes from station Start to station Exit 2.
Step 1: Create module, stations and route
We set the Create Module to create a total of 40 entities. Then we
defined two sequences, being Type A and Type B.

Afterwards we created the stations (departure station: Home and


arrival station Exit 1 & 2) in the model window and we have also

Modelling and animating movement

- 60 -

already dragged the Route module into the model window. The model
window then looks as follows:

We have already given the stations their names. The stations and route
are already in the model window because, later on, we can easier
create a sequence with existing stations.
Step 2: Sequence module
After that we defined two sequences namely, Type A and Type B. The
sequence Type A consists of 1 step in which the entity passes the
station Exit 1. In this step we have also given the attribute Routetime
value 3. This attribute we will use later on in the Route module.
The sequence Type B also consists of 1 step in which the entity passes
station Exit 2. In this step we have given the value 6 to the attribute
RouteTime.
In the following figures is shown how dialog boxes are filled in.
The dialog boxes for Type A we have filled in as follows:

T
h
e
d
i
a
T
The dialog boxes for Type B we have filled in as follows:

Step 3: Assign module


The sequences we have assign to entities by means of the Assign
module. In the picture below can be seen how we did this.

Modelling and animating movement

- 61 -

Every entity will either get the sequence Type A or sequence Type B.
Logically you can also insert a Decide module with a 75%/25%
condition-by-chance, followed by two Assign modules each containing
the right sequence. The Assign modules then come together at the next
module.
Step 4: Route module
We have defined the route time in the assignments of the sequence.
Here we have to make it so that the attribute recurs and that the unit
of time is set correctly. In the field Route Time we refer to attribute
RouteTime.

Step 5: Animation
The model now looks as follows:

We can now add the Animation. This is done with the route Animation
button (

). The following screen appears:

We choose the default settings. When we press OK we can draw a


line on the screen. At the ends of the line two stations are instantly
placed. By double clicking on the stations you get the following screen:

Modelling and animating movement

- 62 -

In here you can specify which Station it has to be. The final Animation
during the run looks like:

Step 6: Running the model


When we run the model, at the end of the run it will appear
approximately as in the next picture:

The distribution of the entities among the two stations is apparently not
completely according to the specified distribution. The cause of this has
been discussed in chapter 4. Look at the results of the model when you
do several replications.
Example 2:

Printer factory
A printer factory produces two types of printer: laser printers and inkjet
printers. There is a separate machine for each type. On average, each
machine produces one printer every 5 minutes. Employees prepare the
printers that leave the machines for packaging. There is a separate
department for each printer type. After having been prepared for
packaging, the laser printers go to the quality control department. Of
the inkjet printers, 10% are checked at random. The chance that an
inkjet printer is rejected is negligible. The chance that a laser printer is
rejected is 2%. Approved printers are moved to the shipping
department, where they are prepared for transport. There is one
shipping department for laser printers and one for inkjet printers.
Rejected printers are collected at a separate location to be destroyed.
Transport between all departments takes approximately 2 minutes for
each printer.

Questions:

How many approved laser printers, and how many approved inkjet
printers, does the printer factory produce in 8 hours?

Modelling and animating movement

How many laser printers are rejected in 8 hours?

- 63 -

Step 1: Modelling
N.B. There are no data available concerning resources and processing
times. This example is used to illustrate the functioning of Sequences,
so we can disregard the processing of entities and the operating
resources. However, if you were to make a representative model of
such a factory, you will need such data on the various processes and
the resources that are required to carry out these processes!
The following diagram can be constructed from the case description:
Inkjet
printer
machine

Inkjet printer
packaging
department

Laser
printer
machine

Laser printer
packaging
department

Inkjet printer
distribution
department

90%

Inkjet printers

10%
Quality
Control

98% Laser printers

2% Laser printers

Laser printer
distribution
department

Rejected
laser printers

You can derive four different routings from the diagram above:
1. Via the packaging department directly to the inkjet printer
distribution department.
2. Via the packaging department and Quality Control to the inkjet
printer distribution department.
3. Via the packaging department and Quality Control to the laser
printer distribution department.
4. Via the packaging department and Quality Control to the
department for rejected laser printers.
We must therefore define 4 sequences. We model the machines using
Create Modules and we use stations to model the locations of the
machines, the packaging departments, Quality Control, the distribution
departments and the department for rejected laser printers. We model
the movements between the various locations using Route Modules.
In Arena, the model appears as follows:

Step 2: Create module and stations


In the Create Modules the time between printers arriving is specified as
random 5 minutes for both machines. Furthermore we make station
modules as shown in the figure above. The entities subsequently pass a

Modelling and animating movement

- 64 -

Station Module where they are assigned one of two sequences in an


Assign Module:
Step 3: Sequence module
Now that the names of all of the stations have been determined, we
define the four sequences:

Step 4: Assign module


In the Assign 1 Module, through which the inkjet printers flow, we
assign either the sequence InkNoQC_Seq or the sequence InkQC_Seq:

In the Assign 2 Module, we assign the sequence LaserPassQC_Seq or


the sequence LaserFailQC_Seq:

Step 5: Route modules


The only thing that is left to do is to fill in the route Modules. This has
become rather simple through the use of the sequences. Apart from the
name of the module, we can fill in the dialog boxes of all Route
Modules in the same way, as shown below.

Modelling and animating movement

- 65 -

Because, according to the case description, the route time for every
route is 2 minutes, we do not need to use an attribute for the route
times. We can just fill in 2 in the "Route Time" field and select
Minutes in the "Units" field in every Route Module.
For "Destination Type" we select "Sequential", so that the entities flow
through the system according to their own sequence.

Step 6: Animation
The use of sequences has no consequences for the use of animation.
Therefore we can animate stations and routes in the usual way. Our
animation appears as follows:

We have animated all of the modelled stations and by using the


button we have grouped all of the stations that belong together into a
rectangle. By using the

button, all rectangles and stations have

been given explanatory texts. Both buttons can be found in the Draw
toolbar. Counters at the machines display how many inkjet and laser
printers have been produced. At the distribution departments you can
see how many printers are waiting.
Step 7: Answering questions
In the Run Setup dialog box we set the run time to 8 hours, save the
model and run it. At the end of the run the animation appears as
follows:

In 8 hours, 95 inkjet printers are produced and prepared for


distribution. In the same time, 94 laser printers are produced, of which
2 are dumped as a result of quality control. Thus there are still 2
printers present in the process. If you increase the runtime slightly, for
instance to 8.01 hours, you will see that this difference disappears.

Modelling and animating movement

- 66 -

5.3 EXERCISE
Case: Assembly department
Suppose that an assembly department replaces the packaging
department in the example above. This assembly department finishes
the printers that are produced by the machines. Quality Control follows
after the assembly department. Here 10% of the laser printers and 8%
of the inkjet printers are rejected, and sent back to the assembly
department, where the detected faults are repaired. Repaired printers
are sent once more to Quality Control. The chance that a repaired
printer is rejected again is negligible.
Following

Quality

Control,

the

printers

go

to

the

distribution

departments. Because printers are no longer definitively rejected, a


dump location for printers has become redundant.
Assignment
Amend the example model in such a way, that it reflects the above case
description. What consequences does the new structure have for the
number of printers that can be prepared for transport within 8 hours?

Modelling and animating movement

- 67 -

6
Transport
INTRODUCTION: This chapter focuses on the transport of entities. In chapter 5 you
have seen how entities can move using the Route Module. Entities can also be moved, for
instance, by vehicles or by using a conveyor belt. In this chapter we examine how this can
modelled in Arena. For this purpose we examine the Transporter and Conveyor data
Modules and we show the other modules that are required to model the transport of an
entity. Vehicles and conveyors are clearly different from routes (Route module) because
entities have to wait until the means of transport are available and because the duration of
the transport depends on the properties of the vehicle.

OBJECTIVES:

Having completed the chapter:


you will be familiar with the Transporter Module and the Conveyor Module.
you will be able to model a transporter or a conveyor in a simulation model.

Transport

- 69 -

6.1 TRANSPORTER
In the real world, vehicles are often used to transport people or objects. Think for instance
of forklift trucks in a warehouse, trucks that distribute goods, buses that transport people,
etc. We model these types of vehicle in Arena using the Transporter Module (paragraph
6.1.1) from the Advanced Transfer panel.
In addition to defining a Transporter, you must also define the routes that the Transporter
takes. In Arena, such a route is called a "Distance". This is discussed in paragraph 6.1.2.
An entity has to request a vehicle (Transporter), claim it, and let it come to the location
(Station) where the entity is at the moment in order to be able to use the vehicle. For this
you use the Request module (paragraph 6.1.3) from the Advanced Transfer panel. To model
the actual transport you use the Transport module, discussed in paragraph 6.1.4.
When the transporter with the transported entity arrives at the destination station, the
vehicle has to be released. That is done with the Free module from the Advanced Transfer
panel. The Free module is discussed in paragraph 6.1.5.

6.1.1 Transporter module


Functionality: The vehicle (the transporter) is some kind of resource: A transporter has a limited
capacity and is active on times you can define yourself. An entity that wants to be carried
on a transporter has to claim a transporter before the transport and has to request the
transporter to go to the Station where entity is located. When no transporter is available, the
entity has to wait in queue for the next free and arrived transporter. When an entity has
claimed a transporter, the transport can take place. After transport, the entity releases the
transporter in order that it can serve a different entity, just like a resource. The most
important difference between a transporter and a resource is that a resource always has a
fixed location and that a transporter can move.
Examples of practice: Examples of transporters are:

Busses transporting people.

Forklift trucks in a warehouse.

Trucks distributing goods.

People bringing documents from one department to the other.

Properties: As can be seen on the left, the Transporter module is a data module. Therefore you do
not position the module in the model window, but you define the transporter in the
spreadsheet window. You can fill in the parameters of the transporter in the spreadsheet.
When the cursor is in front of the row of the concerning transporter and you double click,
you can call up the dialog box of the transporter as is shown in Figure 6.1. The Transporter
module defines the properties of the type of vehicle.

Transport

- 70 -

Figure 6.1 Transport dialog box

In the table below we explain how to fill in this dialog box of the transporter.
Fieldname

Explanation

Name

Here you can give a random, unique name to the transporter.

Capacity

Here you fill in the number of required vehicles. These vehicles all have the same
characteristics, except for a unique "Unit Number": the serial number of the
vehicle.

Distance Set

In this field you give a name to the collection of stations between which the
transporter will be driving. This name recurs when defining distances (6.1.2) and
when animating the Transporter.

Velocity

In this field you fill in the velocity of the vehicle. The number you fill in here is the
distance the transporter cover per unit of time. This time unit is defined under
Units.
The unit of distance is indefinite. You have to choose this yourself. For example if
you choose for the unit "meter", then you will have to specify the distance
between two stations also in meters.

Units

Here you choose the unit of time of the velocity.

Initial Position Status

Under "Initial Position Status" you determine at which place every vehicle is
located at the beginning of the simulation run.*

Table 6.1

The Transporter dialog box in detail

By clicking the "Add" button, the dialog box of Figure 6.2 appears. When you

select "Default" under "Initial Position", Arena selects a random station from the Distance
Set (see paragraph 6.1.2) as start-station. When you select "Station" under Initial Position,
you can select a station that will be the start station from the pull-down menu under
"Station Name"

Figure 6.2 Initial Position Status

If you have multiple transporters of the same type (in other words: the capacity of the
Transporter is greater than 1) then you can specify a beginning station for each transporter.
Arena assigns the beginning stations to the transporters in the order that they are defined in
the "Initial Position Status" field in the Transporter dialog box. So the first transporter starts
from the beginning station that is specified in the first line of the "Initial Position Status"
field, the second transporter from the beginning station that is specified in the second line,
etc.
Transport

- 71 -

Let op: A transporter can transport only one entity at a time. When more entities have to be carried
by the transporter at the same time, this can be modelled with a temporary batch (see
paragraph 4.3.1).
Let op: The capacity that you specify in the Transporter module does not indicate how many
entities fit on the transporter, but it indicates how many vehicles of that type are available.
Animation: With the button "Transporter" (

) from the Animate Transfer toolbar you indicate in

which way you want to animate the transporter. When you click this button, the screen of
Figure 6.3 appears in the model window.
In this screen you do not only select the "Identifier" but also the name of the transporter you
want to animate. This can be done from the pull-down menu. Then you can assign pictures
to the three statuses of the transporter. This is done in the same way as assigning pictures to
resources and entities. (see chapter 3).
When you have finished assigning pictures, you click "OK" and by clicking with the left
mouse button the transporter is placed in the model window. For more explanation on the
Picture Placement window below, we refer to APPENDIX F.

Figure 6.3 Transporter Picture Placement

6.1.2 Distance module


Functionality: We have already discussed it briefly earlier: The routes, over which a transporter
travels, have to be defined in advance. These routes are called distances. A distance is
defined through the Distance module from the Advanced Transfer panel shown on the left.
Every distance has to be defined in the spreadsheet window or through the dialog box that
can be called up with the right mouse button or by double clicking in front of the row. With
help of the Distance module you specify every connection between pairs of stations over
which a transporter can drive.
Examples of practice: Examples of distances are:

Transport

The distance between departments between which a fork-lift drives back and forth.

The route of bus.

- 72 -

Properties: The dialog box of the Distance module can be found in Figure 6.4. Here you can set the
properties of the Distance. We will elaborate on the possibilities in Table 6.1. In Figure 6.4
a small image has been added of the dialog box that appears when click the Add..

Figure 6.4 Distance dialog box and Stations dialog box

Fieldname

Explanation

Name

In this field you enter the name of the collection of stations and distances that will be
used for the transporter. When you have already created a transporter, a name will
have been created in the form: <<Name of Transporter>>.Distance.

Stations

In this field the various distances will be shown. The individual distances, that is
every path between two stations over which a vehicle can travel, are defined by
clicking the "Add" button. A dialog box as shown in Figure 6.4 is opened with the
following options:
The start station of a distance is specified under "Beginning Station"
The ending station of a distance is specified under "Ending Station".
In the field after "Distance" you define the distance between two stations. Notice
that you use the correct unit!

Beginning Station
Ending Station
Distance
Table 6.1

The Distance dialog box in detail

When the distance between station A and B is e.g. 5, Arena automatically assumes that the
distance between B and A is also 5. If this is not the case in reality, then you will have to
enter a different distance under distance set for B and A.
Animation: The animating of paths, over which the transporter moves, is similar to way in which
you animate a route over which entities move. With the button "Distance" (

) from the

Animate Transfer toolbar, the dialog box of Figure 6.5 is opened. This dialog box show
many similarities with the Route dialog box (see chapter 5).
In this dialog box under "Identifier", you only have to specify to which Distance Set this
distance belongs. The Distance-Set is the name of the collection of stations between which,
and distances over which, the vehicles of the transporter move.

Figure 6.5 Distance dialog box (Animation)

For the meaning of all other options in this dialog box we refer to chapter 5.
Transport

- 73 -

After closing this dialog box with "OK", you can place a distance between two stations.
This is done in the same way as placing a route. First click the beginning station and then
click on the end station. "Bends" in the distance are placed by clicking with the left mouse
button in between the beginning and end station.
If you have not animated any stations and in the dialog box of Figure 6.5 "Free Path" has
been ticked, then Arena will place a beginning and end station itself. In this case you stop
placing the distance by double clicking with the left mouse button. At that moment
however, the animated stations do not have a relationship with the modelled stations. By
double clicking on an animated station, you call up a dialog box in which you can specify
the name for the station.
Tip:

In Arena it is permitted to put a Station more than once on the screen in the Animation. In
this way it is possible to create an entrance and an exit of the location on two different
places on the screen, despite the fact that they have the same station name. For example a
resource-based process to which entities are brought by a Transporter and that they leave
through a Route. In this situation the entrance station can be placed on the left in the
Animation with the Distance, then on the right the Queue of the process, the resource of the
process, and to the right of the resource the exit station can be placed together with the
Route connected to it (see Figure 6.6). In this way an easy to understand Animation has
been made.

Figure 6.6 An understandable Animation

6.1.3 Request module


Functionality: Before the transporter can be used, first a request has to be made saying that you
would like to use the transporter. This is done by means of the Request module. When there
Request 1

is no transporter available, or when the Transporter still has to move itself to the Station
from where the Request originated, the entity has to wait. Therefore the Request module by
default comes with a queue.

Examples of practice: Examples of the Request Module are:

A person is waiting at the bus stop until the bus arrives.

Crates with bottles are waiting until they are collected by the forklift truck.

Requests for taxis, made at a taxi centre.

Properties: The Request module makes sure that the entities that need a transporter, make a request
and that they, when needed, wait in the queue. The dialog box of the Request module is
shown below. In Table 6.1 we discuss the possibilities of this dialog box.

Transport

- 74 -

Figure 6.7 Request dialog box

Fieldname
Name

Here you can give the module a random, unique name.

Transporter

From this pull-down menu you select the Transporter that has will be used
by the entity.

Selection Rule, choose from:

In the pull-down menu under "Selection Rule" you can specify how a vehicle
from the Transporter-collection has to be assigned to an entity. You can
choose from 6 options.
Cyclical Arena looks at the vehicle that was claimed last and chooses the fist
available vehicle based on the serial numbers of the vehicles from the
Transporter-collection and assigns that vehicle to the requesting entity.

Random A random choice is made from the vehicles in the collection.


Preferred Order Of the available vehicles, the vehicle with the lowest Unit Number is
assigned to the requesting entity.

Specific Member In this case you can determine a Unit Number in the field next to "Selection

Rule". The vehicle with this number will then always be claimed for the
requesting entity. In this field you can also have the Unit Number be read
from an attribute.
Largest Distance The vehicle that is furthest away from where the entity is at that moment, is
claimed.

Smallest Distance The vehicle that is nearest to where the entity is at that moment, is claimed.
Save Attribute

Here you can specify an attribute name. In this attribute the Unit Number of
the claimed vehicle is stored. When you leave this field blank, the Unit
Number is not stored in the attribute.

Unit Number (If "Specific


Member" is chosen)

Here you can enter the serial number of the vehicle you want to be claimed.

Priority

"Priority" relates to the priority of entities that, in this module, want to claim
a vehicle. When the priority of entities in another Request module is higher,
then the claims of the entities from that module will be served first.

Velocity

Under "Velocity" you can specify the speed of the vehicle that is claimed.
This speed is the speed with which the vehicle will go to the station where
the requesting entity is located at that moment. When a speed has already
been specified in the Transporter module, then this is overwritten with the
speed entered under Velocity. If you leave this blank, then Arena will use
the speed that you have filled in for this transporter in the Transporter
module.

Not applicable with"Specific Member"

Units

Here you enter the unit of velocity.

Queue Type, chose from:

From the pull-down menu under "Queue Type" you can determine the type
of queue in which entities will wait until they can be transported.
Queue By default a queue is made for the waiting entities.

Set The queue has been defined in a set.


Internal The queue exists internally of the module and is not visible to the user.
In this case no statistics of the queue are recorded.

Transport

- 75 -

Attribute The queue for an entity is determined based on the value of an attribute.
Expression The queue for an entity is determined based on a formula.
Queue Name

Here you specify the name of the queue.

Set Name and Set Index

Here you specify the name and the Set Index of the set to be used.

Attribute Name

Here you enter the name of the attribute.

Expression

Here you enter the concerning formula.

(I Queue Type = Queue)


(If Queue Type = Set)

(If Queue Type = Attribute)


(If Queue Type = Expression)

Table 6.1

The Request dialog box in detail

Animation: To animate the request module we use the standard queue that appears above the
module. Chapter 3 described how to animate a queue and therefore we do not go into
animating of the Request module.

6.1.4 Transport module


Functionality: When an entity has claimed a vehicle from the Transporter-collection, the transport
can commence. The transport itself is modelled with the Transport module.
Examples of practice: Examples of the Transport module are:

A bus-user going by bus from bus stop A to bus stop B.

Transport of crates with bottles to the destination.

Transport in a taxi from location A to location B.

Properties: The dialog box of the Transport module is shown in Figure 6.8. In Table 6.1 we discuss
the properties of the Transport module.

Figure 6.8 Transport dialog box

Fieldname

Explanation

Name

In this field you can give a random, unique name to the module.

Transporter Name

In this field under "Transporter Name" you can specify the transporter that will
conduct the transport. By default, this is the transporter that has already been
claimed by the entity that passed through the Request module.

Unit Number

The same applies to the field under "Unit Number", where you can select a
specific vehicle from the Transporter-collection. Here Arena uses the vehicle
that was already claimed. Both these fields you do not have to fill in.

Destination Type, choose


from:

In the pull-down menu under "Destination Type" you specify in which way the
end station of the transport should be determined.
Station The end station is entered in the same dialog box under Station Name.
Sequential The end station has to be determined according to a sequence.
Attribute The end station has to be determined according to an attribute. In the field
next to it, you can specify under Attribute Name the name of the attribute.

Transport

- 76 -

Expression The end station is determined based on a formula. In the field next to it, you

can enter the formula under Expression based on which the end station will be
determined.

Velocity

In this field you specify with which speed the claimed vehicle together with the
entity, has to go to the end station. If you leave this blank then Arena uses the
speed that you filled in for this transporter in the Transporter module.

Units

Here you enter the unit of velocity.

Table 6.1

The Transport dialog box in detail

6.1.5 Free module


Functionality: When the vehicle together with the entity arrives at the destination, the vehicle has to
be unloaded. This is modelled with the Free module. The Free module separates the entity
from the Transporter and releases the transporter for a next transport.
Examples of practice: Examples of the Free module are:

Bus-users getting off the bus.

Crates with bottles that have arrived at the destination.

The taxi together with the client has arrived at location B.

Properties: The dialog box of this module is shown in Figure 6.9. This is a very simple module in
which in practice nothing has to be filled in. Under "Name" you can give the module a
random, unique name. Under "Transporter Name", the name of the transporter that has to
be released is specified. This however, is not necessary. When you leave this field blank,
every vehicle that enters the module is released. The unloaded entity exits from the right
connector of the Free module. The transporter is immediately available for a new task and
is not visible in the process logic.

Figure 6.9 Free dialog box

6.1.6 Order of modelling a Transporter


For reasons of clarity we once more show the order in which the modules must be placed to
create a correct transport model.

Figure 6.10 Order of modules

Before transport can occur, the entity to be transported must be situated at a station.
However, other modules can be placed between the Station Module and the Request
Transport

Module. Between the Request and the Transport module other modules can also be placed,
- 77 -

but do not forget that the transporter has already been claimed between the Request and the
Transport, and that it therefore can not transport other entities. When the loading or
embarking should take a certain time, it can be useful to put a Process module with a delay
in between the Request module and the Transport module. The vehicle is ready as soon as
the entity leaves the Request module, next a short delay occurs before the loading, after
which the transport can commence. The same applies for the unloading of the vehicle
between the modules Ending Station and Free in Figure 6.10. Here you can also put a
Process module in between to model the unloading.
A transport begins by making a request for a vehicle, this modelled with the Request
module. When a vehicle has been claimed, the real transport can start. For this you use the
Transport module. When the vehicle together with the entity arrives at their destination, the
vehicle has to be unloaded. For this you use the "Free module". The entity exits the Free
module to continue it route through the logic. The vehicle is then available again for a next
transport.

6.1.7 Example
Case Transport with a transporter:
On average, every 7 minutes one entity arrives at Station 1. This entity
must then be transported 600 meters to Station 2. There are two
transporters available, both travel at a velocity of 1 m/s. When the
system is started, one transporter is at Station 1 and one transporter at
Station 2.

After arrival at Station 2 the entity is removed from the

system.
Step 1: Modelling
The first step is to make a conceptual model. In the model below is
shown of which steps the model should consist and below that has
been indicated which Arena modules we will use for that.

Entity

Entity
enters

access
transporter

Create

Request

Station

Transporter

Entity

moves entity

entity leaves
transporter

leaves
system

Transport

Free

Dispose

Transporter

Station

After this conceptual model we can fill in all modules as has been
described above.
Step 2: Create module
The order of the modules is as follows:

Transport

- 78 -

After placing the Create module we have to specify a station for both
the transporter and the Animation at which the entity will arrive.
Therefore we add a Station module after the Create module.
Step 3: Transporter module
Before filling in the Request Module dialog box, we first model the
Transporter. We will fill in the Transporter dialog box as follows:

Step 4: Request module


Now we fill in the dialog box of the Request module as follows:

Under "Selection Rule" we select "Cyclical" in order for the entity to


always get assigned the next first available vehicle. Priorities do not
apply here because we use only one Request module. Furthermore we
model a queue in which all entities waiting for transport will be placed.

Transport

- 79 -

Step 5: Transport module


We fill in the dialog box of the Transport module as follows:

We also add a station after the Transport module because the transport
takes place between two stations. This will be the end station.
Step 6: Distance module
Now we must model the distance that the transporters can move. For
this we fill in the Distance Module dialog box as follows:

Step 7: Free module


We position a Free Module after the Station 2 Module to free the
incoming transporters. The dialog box of the Free Module is filled in as
follows:

Step 8: Check for errors

Now the model is ready and can be run. However, we want to add
some animation. Before we do so, we save the model and use the

Transport

- 80 -

Check-button (

) to check if it contains errors. If the "No errors or

warnings in model" message is displayed, we can continue.


Step 9: Animation
First we animate the stations. We click on the Station button (

) in

the Animate Transfer toolbar. The following dialog box appears:

We call the stations "Station 1" and "Station 2", corresponding to the
modelled stations.
In the dialog box of both Stations we check "Parking". This means that
during the animation it will be visible when a transporter is parked at a
station.
Next we animate the distance between Station 1 and Station 2 by
clicking the Distance button (

) from the Animate Transfer toolbar.

We fill in the dialog box that appears as follows:

Then we draw the distance line between the two stations and place a
queue that is shown above the Request Module, in front of the
animated Station 1.
The animation will appear as follows:

After this we animate the Transporter by clicking the Transporter


button (

). We set up the Transporter Picture Placement dialog box

as follows:

Transport

- 81 -

We close the dialog box by clicking the "OK" button and position the
Transporter somewhere in the model window. We save the model once
more and then start the simulation by using the Go button (

). The

animation will appear as follows:

6.2 CONVEYOR
Entities in Arena can also be transported between stations using a conveyor: a type of
conveyor belt. When an entity has to be transported over a Conveyor from the beginning to
the end station, there first has to be enough room on the conveyor belt to fit the entity. For
this the entity first has to claim a part of the Conveyor, then the transport can occur and at
the end of the Conveyor the entity has to be removed from the Conveyor. These three
actions are modelled respectively with the Access, Convey and Exit module from the
Advanced Transfer panel.
Before we discuss these modules, we first go into the properties of the conveyor in
paragraph 6.2.1. After that, in paragraph 6.2.2, we discuss the Segment module in which
the length and the velocity of the conveyor belt can be defined.
In paragraph 6.2.3 we discuss the Access module with which the entity makes a request for
transport over the conveyor belt. Next, in paragraph 6.2.4 the Convey module will be
discussed; the real transport over the conveyor belt. In paragraph 6.2.5 we look into the Exit
module. To conclude with, we discuss in paragraph 6.2.6 the order of modelling and in
paragraph 6.2.7 we demonstrate an example.

6.2.1 Conveyor module


Functionality: Using the Conveyor module from the Advanced Transfer panel you model the
properties of the actual conveyor belt. The picture on the left shows the Conveyor module,
and as you can see, we are dealing with a spreadsheet module here.
Examples of practice: Examples of the Conveyor module are:

Transport

An escalator in a shop
- 82 -

A ski lift

A Conveyor belt in used in factory

Properties: Transport using the conveyor is based on the availably of space on the conveyor belt.
This also makes the main difference from the transporter. For the transport of entities using
a transporter you have to claim an entire vehicle, for the transport using a conveyor belt
only the space that is needed by the entity has to be claimed. The slots on the belt can be
occupied by the entity and the conveyor transports the entities across a certain distance to
the next station.
There are more dissimilarities between the use of vehicles and a conveyor. For instance, the
speed of all entities on a conveyor is equal. When the conveyor stops, all entities on the
conveyor stop as well. Furthermore, only one entity at a time can be placed onto the
conveyor and only one entity can get off at one moment in time. Finally, vehicles are able
to overtake each other; conversely entities leave the conveyor in the order in which they
went onto the conveyor.
The Conveyor module defines the properties of the propulsion of the conveyor belt using
information such as velocity and the type of conveyor, whereas the segments see
paragraph 6.2.2 define the properties of the conveyor belt itself such as length, beginning
station, and end station.
The dialog box of the Conveyor module is shown in the next figure:

Figure 6.11 Conveyor dialog box

This screen can be called up in the usual way from the spreadsheet field. Below we will
discuss the properties of the conveyor according to the figure shown above.

Transport

Fieldname

Explanation

Name

Here you can give a random name to the conveyor.

Segment Name

Here you specify the name of the collection of segments in which the
conveyor is split up. (see paragraph 6.2.2)

Type:

Under "Type" you determine if the Conveyor stops at the moment


entities are being put on the conveyor belt or are being taken off. This is
of importance when the loading or unloading of the Conveyor takes
time.

- 83 -

Accumulating An accumulating conveyor can be compared to a roller track. A

Conveyor of the "Accumulating" type does not stop when entities are
loaded or unloaded: all entities on the conveyor belt shift a certain
distance until the conveyor belt is totally full.
Non-Accumulating A non-accumulating conveyor is a conveyor belt. When the loading on
and/or unloading off of the entity takes time, the whole conveyor belt
comes to a halt.
Velocity

Here you specify the velocity of the Conveyor. The unit is: number of
cells per unit of time.

Units

Here you specify the unit of time of the velocity with which the conveyor
moves.

Cell Size

In this field you specify the minimal size of the area that an entity will
claim on the conveyor. Therefore the number of available cells on the
conveyor is equal to the length of the conveyor divided by the Cell Size.
The Cell Size is dependant on the size of the entities. In a soft drinks
factory the Cell Size is the size of a bottle, in a chairlift it is the space
between two chairs. If entities of different sizes are transported with the
conveyor, you can have bigger entities claim several cells in the Access
module.

Max Cells Occupied

In this field you specify how many cells an entity can claim at most on
the conveyor belt. If during the run an entity tries to claim more than
the maximal allowed number of cells, an error message appears.

Accumulation Length

Accumulation length is the distance that an entity is pushed forward at


the moment that, at the end of the Conveyor, an entity is unloaded
Notice that this can never be more than the length of one cell. When
the distance between two entities would be one cell, this moving of the
entity (when an entity in front of it is in standstill) would lead to a
problem when the Accumulation Length is bigger than the length of a
cell. If you nevertheless do set this parameter like this, an error
message will appear during the run.

Initial Status

In this field you determine whether or not the Conveyor is active at the
start.

Table 6.1

The Conveyor dialog box in detail

Animation: In contrast to the transporter, the Conveyor itself can not be animated; after all it is not
very interesting to show the engine of the conveyor belt on screen. However, the Segment
over which the entities are transported by means of the Conveyor can be animated. This is
discussed in the next paragraph.

6.2.2 Segment module


Functionality: The distances over which the entities are transported using the conveyor, are
modelled as segments; this is comparable to the distances over which a transporter goes.
Examples of practice: Examples of the Segment module are:

Escalator: The escalator itself, with a set distance between the first floor and the upper
floor. One step is defined as one cell. Therefore the cell size of the conveyor is 1
(person) and the number of cells is equal to the number of steps. If two persons fit one
step, then the cell size is 1 (person) and the number of cells is double the number of
steps. A person with a suitcase can claim for example 2 or 4 cells.

Ski lift: The small chairs of the ski lift where a cell represents the distance between
two chairs. The next chair can be claimed only when the previous chair is sufficiently
far away. The number of cells that is specified here will be half of the total available
number of chairs, because that is the number of available chairs going in one
direction. The cell size is 1.

Transport

- 84 -

A conveyor belt in a factory: imagine the belt(s) over which the goods in a factory can
be transported. If the cell size is specified for example as one meter, the segment
length indicates the number of meters belt that is available.

Properties: In contrast to a transporter, a Conveyor has a predetermined beginning station. Notice


that entities can only always be transported in one direction on a segment, whereas entities
can move in two directions over transporters and routes.

Figure 6.12 Segment dialog box

The dialog box of the Segment module can be seen above. The Segment module is a data
module; this can be modified in the spreadsheet field. Below we will discuss the properties
of the Segment module.
Fieldname

Explanation

Name

In the "Name" field you fill in the name of the set to which the
Segments belong that you want to model in this module. You have
entered this name in the dialog box of the Conveyor Module.

Beginning Station

For "Beginning Station" you enter the name of the beginning station.

Next Stations

The next (end) station is modelled by clicking the "Add" button. A new
window appears that is shown in Figure 6.13.

Next Station
Length

Table 6.1

Under "Next Station" you specify the end station of the Segment.
Under "Length" you specify the length of the Segment. This length is
expressed in the number cells that are occupied by this segment. This
length has to be divisible by the Cell Size!

The Segment dialog box in detail

Figure 6.13 Next Station dialog box

Animation: The segments, over which the entities are transported with Conveyor, can be animated.
Segments can be animated with the Segment button. This can be found in the Animate
Transfer Toolbar. With the Segment-button (

) you call up the Segment dialog box, see

Figure 6.14.

Transport

- 85 -

Figure 6.14 Segment dialog box (Animation)

This dialog box is almost identical to the Route dialog box that we discussed in chapter 5.
In the field "Identifier" you specify to which collection of stations and segments this
segment belongs. You have already determined the name of this collection in the dialog
box of the Conveyor module.
Afterwards you click "OK" to close the dialog box and you are able to place the segment
between two stations. This is done in the same way as route or distance.

6.2.3 Access module


Functionality: Before using the conveyor, an entity has to claim a big enough spot on the conveyor
by means of the Access module. When the conveyor is fully occupied, the entity will be
placed in a queue, after which the entities one by one will take their places on the conveyor
as soon as there is a free space. You can find the Access module in the Advanced Transfer
panel.
Examples of practice: Examples of the Access module are:

A queue for an escalator.

Crates waiting to be put on the conveyor belt.

Properties: The dialog box of the Access module can be seen in Figure 6.15. The properties of the
Access module are discussed in Table 6.1.

Figure 6.15 Access dialog box

Transport

- 86 -

Fieldname

Explanation

Name

In this field you can specify a random name.

Conveyor Name

Here you specify on Conveyor the entity should claim a number of cells.

# of Cells

The number of cells the entity has to claim on the Conveyor. This can
not be higher than the maximum claimable cells you have specified in
the Conveyor module!

Queue Type & Queue Name

These fields of the dialog box are in function comparable to the Request
dialog box that we discussed on page 75.

Table 6.1

The Access dialog box in detail

Animation: For animating the Access module we use the standard queue that is supplied with the
module. The animating of a queue has been discussed in chapter 3 and that is why we will
not elaborate on animating the Access module.

6.2.4 Convey module


Functionality: In the Convey module the actual transport over the Conveyor is modelled.
Examples of practice: Examples of the Convey module are:

People standing on an escalator.

Bottles that are moved over a conveyor belt from location A to location B.

Sitting in a chair lift and being transported to the station on top of a mountain.

Properties: By double clicking on the Convey module, after having placed it in the model window,
the dialog box below appears:

Figure 6.16 Convey dialog box

In Table 6.1 we discuss the option of the Convey module.


Fieldname

Explanation

Name

In this field you can specify a random name.

Conveyor Name

Under "Conveyor Name" you specify which Conveyor is to be used for


transport. If you leave this blank, the Conveyor is used of which the
entity has claimed cells in the preceding Access module.

Table 6.1

The Convey dialog box in detail

The other parts of this dialog box are functionally identical to the same parts of the dialog
box of the Transport module. For these parts we refer to page 77.

Transport

- 87 -

6.2.5 Exit module


Functionality: When an entity has reached the end of the Conveyor, the removal of the entity from
the Conveyor is modelled by an Exit module.
Examples of practice: Examples of the Exit module are:

People getting off the escalator.

Skiers get off the chair lift.

Crates have arrived at the end of the conveyor belt and are taken off.

Properties: In Figure 6.17 the dialog box of the Exit module can be seen.

Figure 6.17 Exit dialog box

In the "Name" field you can give the module an arbitrary name. It is recommended to leave
the fields "Conveyor Name" and "# of Cells" blank and to accept the default settings. Arena
will look after that the right conveyor is exited with the correct number of cells. Below we
discuss the possibilities of the Exit module.
Fieldname

Explanation

Name

In this field you can specify a random name.

Conveyor Name

Under "Conveyor Name" you specify the name of the Conveyor off
which the entity should be removed.

# of Cells

Under "# of Cells" you specify how many cells should be "released". If
you leave this blank, the number of cells claimed by the concerning
entity is released.

Table 6.1

The Exit dialog box in detail

6.2.6 Order of modelling of a Conveyor


The way of modelling a Conveyor shows many similarities with the way you model a
transport using a transporter. Figure 6.18 shows these similarities.

Figure 6.18 Modelling of a Conveyor in comparison with a Transporter

Before the transport can commence, the entities have to be located at a station. In between
the Station module and the Access module, other modules can be placed. In between the
Transport

Access module and the Convey module this is the case as well, but remember that the spot
- 88 -

on the conveyor (between the Access module and the Convey module) has already been
claimed and that therefore the whole conveyor will be in standstill until this spot has been
taken by an entity. The same applies to the modules Ending Station and Free in Figure
6.18.
A transport starts with a request for a spot on the conveyor; this is modelled with the
Access module. When a spot on the conveyor becomes available, the actual transport can
commence. For this you use the Convey module. When the end of the conveyor has been
reached by the entity and the entity arrives at its destination, the entity has to exit the
conveyor. The Exit module is used for this. The entity leaves the Exit module to continue
its route through the logic.

6.2.7 Example
Case Transport with a conveyor
In this example we see how entities, that arrive approximately every 30
seconds, are transported over a conveyor belt that is 60 meters long.
The conveyor belt can be divided into sections of 1 meter. Every entity
occupies no more than 1 meter. The conveyor belt has a velocity of
0.20 meters/second.
Placing an entity on the conveyor belt takes between 15 to 20 seconds.
Removing an entity at the end of the conveyor belt takes about 20
seconds.
We will first model the situation in which the total conveyor belt is idle
when the entities must be loaded or unloaded.
Below this case is built into a model step by step.
Step 1: Modelling
The first step is to make a conceptual model. In the model given below
it can be seen which steps have to be covered by the model and it is
indicated which Arena modules we will use for that.

After making this conceptual model, we can fill in all modules as we


have described them above.

Transport

- 89 -

Step 2: Create module


We have filled in the Create Module as follows:

Besides placing the Create module, we need to have a station at which


the entities arrive for the conveyor as well as for the Animation. We add
a Station module after the Create module.
Step 3: Conveyor module
After that we model the Conveyor with which we transport the entities.
Then we fill in the dialog box of the Conveyor module as follows:

Because the conveyor belt is idle during loading and unloading of


entities, we select "Non-Accumulating" for Type. According to the
description, the smallest section of the belt is 1 meter, so for "Cell Size"
we fill in 1. An entity will never occupy more than 1 meter of space on
the belt, so we also set "Max Cells Occupied" to 1.
Step 4: Access module
Afterwards we fill in the dialog box of the Access Module:

Step 5: Delay module 1


When the entity has claimed a cell in the Access Module, the loading
time must be modelled. You can best do this with the Delay Module
Transport

- 90 -

from the Advanced Process panel. All of the entities that enter this
module are delayed for a certain (further to be specified) time, before
they leave the module.
A loading time between 15 and 20 seconds is given for loading the
entity onto the conveyor belt. We therefore fill in the dialog box of the
Delay Module as follows:

We model a uniform distributed delay of a minimum of 15 seconds and


a maximum of 20 seconds. The actual transport over the conveyor belt
only occurs after the entity has left the Delay Module.
Step 6: Convey module
We then fill in the dialog box of the Convey Module as follows:

Furthermore we add a station after the Convey module because the


conveyor has to deliver the entity to a station.
Step 7: Segment module
We still need to define a segment over which the entity can be
transported. We fill in the dialog box of the Segment Module as follows:

Step 8: Delay module 2


After arrival at Station B, the entity must be removed from the belt.
This takes approximately 20 seconds. Once more, we place a Delay
Module in front of the Exit Module. We fill in the dialog box as follows:

Transport

- 91 -

Step 9: Exit module


We accept the default settings of the Exit Module:

When we have placed the Dispose Module, the logic of the model has
been completed. We save the model and use the Check button (

) to

check the model for errors. The model then appears as:

Step 10: Animation


Following this, we add animation. This is done rather quickly: We
animate two stations: Station A and Station B and in between we add a
segment.
We animate the segment using the Segment button (

) from the

Animate Transfer toolbar. We fill in the dialog box that appears as


follows:

After placing the segment between the two stations, we position the
queue that is located above the Access Module in front of the first
station. The animation will appear as follows

We save the model once more, check it for errors and use the Go
button to run the simulation.
Transport

- 92 -

During the run, the animation will appear similar to the diagram below:

Examine the animation during the run. Following this, set the Conveyor
type to "Accumulating" and enter 1 for "Accumulation Size". Save and
run the model once more and examine the animation.

6.3 EXERCISE
Description:
In total 40 entities are created at a certain location. Entities arrive
approximately every 3 minutes. Half of these entities are transported
using a conveyor belt to a location that is 30 meter away from the
location where they were created. The conveyor belt has a velocity of 5
centimetres per second. The loading and unloading time of entities on
the conveyor belt is approximately 30 seconds. The belt is halted during
loading and unloading of an entity.
Of the other entities, 20% are transported to a location that is 300
meters away from the creation location. The remainder are transported
to a location that is 200 meters away. For the transport to these
locations one transporter is available that has a velocity of 5 meters per
second. In the initial situation, the transporter is parked at the creation
location.
Assignment:
Create a simulation model for above mentioned situation.

Transport

- 93 -

Advanced Modelling

7
Advanced Modelling
INTRODUCTION: In this chapter a number of different subjects are at the forefront. In paragraph 7.1 we
discuss several special constructions such as the Signal-Hold, Schedules etc. The second
subject we will look into is the Blocks template. This is a different level of modelling that is
discussed in paragraph 7.2. The final matter that is brought forward is how to model wellordered. This is discussed in paragraph 0.

OBJECTIVES:

Having completed the chapter:


you will be acquainted with a number of special constructions
you will know how to use the blocks template
you are capable of building a well-ordered simulation model

Advanced Modelling

- 95 -

7.1 SPECIAL CONSTRUCTIONS


7.1.1 Schedules
Functionality: There is the possibility of using schedules in Arena. These schemes can be used for
defining the arrival pattern or for defining the times on which resources are active. You can
specify, per unit of time, how many resources are active or how many entities flow into the
model.
Examples of practice: Examples of using schedules are:

Working hours of an employee.

Operation hours of a machine regarding maintenance.

Peaks in the arrival pattern of guests in a lunchroom between 12.00h and 14.00h.

Properties: In Figure 7.1 you can see the dialog box of the Schedule module from the Basic Process
panel.

Figure 7.1 Schedule dialog box and durations dialog box

Fieldname

Explanation

Name

In this field you can give a random name to the module.

Type

Capacity Under Capacity the capacity of a resource is specified.


Arrival Under Arrival an interarrival time is made for a Create module. The
specified quantity will be distributed over the indicated duration by
means of an exponential distribution.
Other With Other a schedule is made for other purposes.

Time Units

Under Time Units you specify which unit of time should be used for
entering a schedule.

Scale Factor

Scale Factor is used for enlarging or reducing in case of Arrival or


Other. The Value fields in this schedule are multiplied with this factor
to determine their value. This does not apply for schedules of the type
Capacity.

Durations

Table 7.1

Advanced Modelling

Under Durations you specify the duration and the amount for the
schedule. By clicking Add the right input screen of Figure 7.1 comes
forward.
Value In case of a capacity-schedule the resource capacity is specified here,
for the time given in Duration. In case of an arrival-schedule the
number of entities per time unit is specified here, for the time given in
Duration.
Duration Under Duration you specify the time that applies to the value entered
under Value.

The Schedule dialog box in detail

- 96 -

When the schedule has been run through completely, it will be run through again starting
from the beginning. This does not happen when the "Duration" of the last row in the
schedule has not been specified. In that case the capacity of the resource will stay equal to
the last specified capacity in the schedule, for the remaining time of the simulation run.
Smart 027 and Smart 114 give a good impression of the use of schedules to model a
resources capacity. Smart 056 describes the use of schedules for arrival patterns.

7.1.2 Hold-Signal
Functionality: The Signal module as well as the Hold module can be found in the Advanced
Process panel. Entities can be retained in a Hold module. With the Signal module a signal
can be given to release all entities, or a number of entities, that are present in the Hold
module at that time. The entities in the Hold module wait for a signal with a certain
number. Only when that number is broadcast by a Signal, entities will leave the Hold
module.
Examples of practice: Examples of the use of this construction are:

Emptying of the letterbox at 18.00h

At the moment the bus halts at the bus stop, the passengers get on the bus.

Properties: An example of the construction of such a system is given in Figure 7.2. In the top row
of the modules, the entities are created that are then held in the Hold module. The entities
are held until below them (in Create 2), an entity is created that passes through the Signal
module and as a result releases entities that are held in the Hold module in the top row.

Figure 7.2 Example of the Hold-Signal construction

In Figure 7.3 the dialog box of the Hold module is shown.

Figure 7.3 Hold dialog box

Advanced Modelling

- 97 -

Fieldname

Explanation

Name

In this field you can give a random name to the module.

Type

Under Type you can specify what kind of hold you want to use. In this
construction the hold of the type wait for signal is used.

Wait for value

Here you specify on which signal the Hold module has to release
entities. This should be the same value as is entered in the Signal
module*.

Limit

Under "Limit" you specify how many entities should be released every
time a signal is given. If you leave this blank, all entities present in the
queue are released.

Queue Type, choose from:

From the pull down menu under "Queue Type" you can determine the
type of queue in which the entities wait until they can be transported.
A standard queue is made for the waiting entities
The queue has been defined in a set.
The queue exists internally of the module and is not visible to the user.
In this case no statistics of the queue are recorded.
The queue for an entity is determined based on the value of an
attribute.

Queue
Set
Internal
Attribute

Expression The queue for the entities is determined based on a formula


Queue Name

Here you enter the name of the queue

(If Queue Type = Queue)

Attribute
(If Queue Type = Attribute)

Expression
(If Queue Type = Expression)

Table 7.1

Here you enter the name of the attribute in which the name of the
queue has been stored.
Here you enter the formula based on which the queue has to be
determined.

The Hold dialog box in detail

* If, in more than one place in your model, you have entities waiting for a signal with the
same value (e.g. value 10), entities from all Hold modules will be released when the
Signal module broadcasts the value 10 throughout the model.
In Figure 7.4 the dialog box of the Signal module is shown. We discuss the possibilities of
this dialog box in Table 7.1.

Figure 7.4 Signal dialog box

Fieldname

Explanation

Name

In this field you can give a random name to the module.

Signal value

Under Signal Value you specify the value that Arena should broadcast
as signal. Only Hold modules with an equal value entered underWait
for Value will release entities.

Limit

Under "Limit" you specify how many entities have to be released in


every Hold module with the concerning signal value, for every time the
signal is given.

Table 7.1

The Signal dialog box in detail

Smart 084 gives an example of the use of the Hold-Signal construction.

Advanced Modelling

- 98 -

7.1.3 PickStation
Functionality: The PickStation module can be found in the Advanced Transfer panel. When an
entity passes through this module, a next station is chosen by the module based on criteria
specified in the module. The movement to this station can take place through a route, a
transporter or a conveyor.
Examples of practice: Examples of the use of this construction are:

Choosing a petrol pump at a gas station

Choosing a counter with the shortest queue in a supermarket

Properties: In Figure 7.5 you can see an example of the structure of such a system. Entities are
created in the Create module. Then the PickStation module determines to which subsequent
station the entity should go. This can be done based on the number of entities waiting in a
queue, but also based on the number of resources busy, the number of entities en route to
the station or on basis of your own expression. Besides this, every combination of these
options is possible.

Figure 7.5 Example of the structure of the PickStation construction

In Figure 7.6 shows the dialog box of the Pick Station module. We discuss the possibilities
of this dialog box in Table 7.1.

Figure 7.6 PickStation and Stations dialog boxes

Advanced Modelling

- 99 -

Fieldname

Explanation

Name

In this field you can give a random name to the module.

Test Condition

Under Test Condition you can specify which condition(s) you want to
use. You can choose from minimum or maximum. This relates to the
number of entities in the queue or the number of resources that is
occupied Busy or to the number of entities on their way to the station.

Selection Based On, select

Here you can determine based on which conditions a next station should
be chosen.
Here it is looked at the number of entities in the specified queue.
Here it is looked at the number of entities underway to one of the
stations from the list.
Here it is looked at the number of resource-units that is busy.
Here you can enter your own expression based on which should be
selected.

Number in Queue
Number en Route to Station
Number of Resources Busy
Expression
Stations

Station Name
Queue Name
Resource Name
Expression

Transfer Type

Transport
Convey
Route
Connect
Table 7.1

Under "Stations" you indicate from which stations should be selected,


which queues and which resources should be taken into account when
routing to the stations. This is also dependant on the option selected
under Selection Based On. Adding to this row is done using the button
Add. The right dialog box of Figure 7.6 pops up, with the following
options:
Station Name is a field that always appears and where you enter
which station should be chosen.
Queue Name appears when under Selection Based On, Number in
Queue was selected. Here you indicate which queue should be
monitored.
Resource Name appears when under Selection Based On, Number
of Resources Busy was selected. Here you indicate which resource
should be monitored.
Expression appears when under Selection Based On, Expression
was selected. Here you indicate which expression should be complied
with.
Under Transfer Type you specify the type of transport to be used.
A transporter is used to route to the next station. (see also 6.1.1)
A Conveyor is used to route to the next station. (see also 6.2.1)
A route is used to route to the next station. (see also 5.1.2)
The logical connect is used to route to the next station.

The PickStation dialog box in detail.

Smart 113 gives an example of the use of the PickStation module.

7.1.4 ReadWrite
Functionality: You can find the ReadWrite module in the Advanced Process panel. You can read
data or write data by using the ReadWrite module. This can be done to the screen or to a
ReadWrite 1

file. In this paragraph we will only discuss writing to a file and reading from it. The data
that is read or written consists of variables and attributes.
Examples of practice: This construction can be used when:

Having to read data that become available from files of the problem owner.

Writing to a file that will be used for later analysis.

Properties: In Figure 7.7 you can see an example of the construction of such a system. The entities
are created by means of the Create module. Then the entities pass through the ReadWrite
module where attributes can be read, or where certain values can be written to a file. It is
not possible to use one ReadWrite module for writing and reading data at the same time.
Advanced Modelling

- 100 -

Figure 7.7 Example construction ReadWrite module

Figure 7.8 shows the dialog box of the ReadWrite module.

Figure 7.8 ReadWrite dialog box (Read from File)

Fieldname

Explanation

Name

In this field you can give a random name to the module.

Type, choose from

Read from Keyboard When using Read from Keyboard, a dialog box appears for every entity

that passes through the module. In this dialog box you can specify the
values for the attributes or variables.
Read from File When using Read from File, attributes or variabeles can be read from a
file. Every column makes a new attribute in the list. Every row is used for a
new entity.
Write to Screen When using Write to Screen, the value of the required attributes is
displayed in a separate window every time an entity passes through the
module. This separate window is the command window (menu window,
command).
Write to File When using Write to File the data of the entities is written to a file that is
specified in the file spreadsheet

Overriding File Format

You can use your own file format when using Overriding File Format.

Assignments

You specify here which data want to read or write. This data consists of
attributes or variables.

Table 7.1

The ReadWrite dialog box in detail

The file used to write the data in, is located in the File module. It refers to a file on the
computer and to a linked file name for Arena. The dialog box of Figure 7.9 shows the File
module.

Advanced Modelling

- 101 -

Figure 7.9 File dialog box

Fieldname

Explanation

Name

In this field you can give a random name to the module.

Operating System File Name

You can specify the name and the location of the file under Operating
System File Name. In case you do not enter a location, Arena assumes
that the file is in the directory of the model.

Structure

You define what the format of the file should be.

Free Format This is the standard format; the standard delimiter is a space.
Unformatted When you use Unformatted, the file can only be read by Arena itself.
WKS File When you select the option WKS File, the file format of Lotus

Worksheet is used. These files can be used for a link to e.g. Excel.
However, there is a limit to the number of lines in the file. This is set to
2048.

End of File Action

By using End of File Action you indicate what action Arena should take
when it has reached the end of the file. Arena will either dispose of the
entities, it returns to the beginning of the file (rewind), it gives an error
message (Error) or it ignores the error (Ignore).

Comment Character

It is possible to define which type of character is used for a comment.


This is done under Comment Character. By using this, this line is
ignored when reading the file.

Table 7.1

The File dialog box in detail

Smarts 162 till 165 deal with the use of the ReadWrite module.

7.1.5 Searching a Queue and removing an entity


Functionality: The Search module is to be found in the Advanced Transfer panel. It is possible to
search in a queue for a certain entity by using the Search module. This entity can be
removed from the queue using the Remove module.
Examples of practice: You can use this construction when:

Searching for a specific product in a warehouse.

Searching for an application form of which the legal time limit has expired.

Properties: An example of the construction of this type of system can be seen in Figure 7.10.
Entities are created at the top Create module and then they are put in a Hold module for an
indefinite time (Type = Infinite Hold). The entities will have to wait until they are taken
out. The bottom Create module creates entities periodically and sends them through the
Search module to search for entities to be removed. The search can be done based on a
Advanced Modelling

- 102 -

condition; for example the entity with the attribute priority > 10, or the entity with the
lowest cost. Suppose that for the latter condition an attribute cost exists. In that case the
search-condition MIN(cost) is entered. The highest priority can be found in a similar way
with MAX(priority). In the example, the attribute cost is set to TRIA(100,200,800) by
using the top Assign Module. The search-condition is set to MIN(cost) in the Search
module. As soon as the searching entity at the bottom enters the Search module, Arena will
search through the queue of the Hold module for the first entity meeting the condition
specified in the Search module. When this entity is found, the location in the queue of the
entity is stored in an attribute J of the entity in the Search module. This attribute is always
present in an entity in the Search Module.
Suppose there are 4 entities in the queue of the Hold module with cost 430, 670, 220 and
390. The search-entity from the bottom Create module will leave the Search module
through the Found-exit with value 3 for the attribute J; after all the third entity has the
lowest cost. If no entity is found that meets the condition, then the entity leaves the Search
module through the Not Found-exit. In the Search module it has to be specified which
part of the queue is searched; usually this will be the whole queue. In that case you enter
that you want to start searching at position 1 and that you want to end at position
NQ(queue name). The ending position for the example above will be NQ(Hold 1.Queue).
This value will be 4 when there are 4 entities waiting in the Hold queue.
After this, the entity with the lowest cost still has to be picked from the queue in order to be
processed. In the Remove module, that is connected to the Found-exit of the Search
module, you can then enter that the found entity has to be removed from the queue. This is
done by entering the concerning name of the queue and by referring to the attribute J for
the location of the entity that will be removed. The entity that is removed will leave the
module through the exit Removed Entity. The searching entity that was used will leave
the module through the Original exit. In this example with 4 entities, the third entity will
be removed from the queue for further processing.

Figure 7.10 Example of the Search-Remove-construction

Advanced Modelling

- 103 -

Figure 7.11 shows the dialog box of the Search module.

Figure 7.11 Search dialog box

Fieldname

Explanation

Name

In this field you can give a random name to the module.

Type

Search a Queue With this it is possible to search a queue for a specific entity and the
location of this entity is given.

Search a Batch With this it is possible to determine whether a certain entity is located in
a batch and at which location this entity is.

Search an Expression With this it is possible to search based on a custom expression. This can
be used when searching for entities based on several attributes.

Queue

You specify here which Queue is to be searched.

Starting Value

The first position in the queue from where the search has to be started;
for example starting from the first entity in the queue: 1

Ending Value

The last location in the queue till where has to be search. For example
the number of entities in a queue: NQ(NameQueue)

Search Condition

The condition that has to be used for searching. For example the value
of an attribute of the entities in a queue.

Table 7.1

The Search dialog box in detail

The location of the entity in the queue is given in the attribute J. This attribute should be
used in the Remove module to specify the right location in this module.
Figure 7.12 shows the dialog box of the Remove module.

Figure 7.12 Remove dialog box

Fieldname

Explanation

Name

In this field you can give a random name to the file for Arena.

Queue Name

You specify here from which queue the entity has to be removed.

Rank of Entity

You enter the location of the entity in this field. In case of this
construction you enter J here.

Table 7.1

The Remove dialog box in detail

Smart 085 gives a good overview of the Search-Remove construction for a queue.

Advanced Modelling

- 104 -

7.1.6 Record
Functionality: The Record module is mainly used for keeping statistics, such as the total throughput
time of entities in the system.
Examples of practice:

Measuring the average total time of a customer visiting a post office.

Keeping track of the number of broken bottles coming out of the cleaning machine.

Properties: Figure 7.13 shows an example of the construction of this type of system. After creation
of the entities, a variable processing time is used in the Process module. In the following
Record module the time between entities is registered.

Figure 7.13 Example of construction of Record

The dialog box of the Record module is shown in Figure 7.14

Figure 7.14 Record dialog box

Fieldname

Explanation

Name

In this field you can give a random name to the module.

Type

Under Type you indicate what exactly you would like to record.
By using Count, the number of entities that passed through the
module is counted.
By using Entity Statistics, the statistics (such as the time in the
system) of the entity are recorded.
By using Time Interval, the time is calculated that is between an
attribute with time value and the current simulation time. In this case a
small field pops up where you can indicate which attribute should be
used.
By using Time Between, the time between entities is recorded.
By using Expression, the value of an expression is recorded.

Count
Entity Statistics
Time Interval

Time Between
Expression
Value

Under Value you can indicate which value should be added to the
counter every time an entity passes through the module.

Counter Name

You specify the name that Arena uses in the report to display this
counter.

Table 7.1

The Record dialog box in detail

Smart 055 shows clearly how the Record module can be put to use to measure the total time
of entities in the system.

Advanced Modelling

- 105 -

7.2 BLOCKS TEMPLATE


7.2.1 General Explanation
You might already have noticed that until now we have only used modules from the Basic
Process, from the Advanced Process and from the Advanced Transfer panels, but that there
are still two other panels present. These are the Blocks panel and the Elements panel. These
two panels contain modules with the possibility to model in greater detail. Whereas in other
modules it is possible to model various functions at the same time, in blocks and elements
you only model a single elementary aspect. The Blocks modules are the most elementary
building blocks available in Arena. The Elements modules are the most elementary data
modules of Arena. Everything you do with the higher level modules can also be built with
blocks or elements. However, the blocks and elements allow more degrees of freedom than
the higher level modules. A disadvantage of using the blocks and elements is that you have
to make a bigger effort for the Animation and to define the parameters through the data
modules.
Example 1 Access:
The Access module and the Access block are shown on the left. It is
clear straight away that the block is displayed far simpler. This is due to
the functionalities. This is because the blocks have fewer functions than
the modules. In order to model the Access module by using blocks, we
also need the Queue block. To illustrate this: Compare the dialog box of
the Access module from the Advanced Transfer panel to the dialog box
of the Access block from the Blocks-panel. Both dialog boxes are shown
in Figure 7.15.

Figure 7.15 Dialog boxes of the Access module and the Access block

The Access Module can, in addition to being used to claim a number of


cells on a Conveyor, also be used to model the associated queue. So
this module can be used to model two aspects. In the Access block you
can only specify the number of cells that must be claimed from which
Conveyor.
The Access Block does however, offer the possibility to place a
comment with the block and moreover you can specify to which block
the entity must go after leaving the current block. To do this you must
fill in the Label of the next block in the "Next Label" field. This Label is a
name that you give to the module in the "Label" field. However, these
Advanced Modelling

- 106 -

options do not enlarge the functionality of the block. Where the Access
Module models two elements, the Access Block only models one.

This example proves that various levels of functionality of modules exist. The modules on
the lowest level model only one aspect. Higher level modules integrate functionality of
several low-level modules.
This means that there is more than one way of modelling a given system. The level on
which you want to build a simulation model depends on your experience in Arena, the time
in which you have to build the model and the requirements of the model. Supposing you
want to make a quick demonstration model, it is recommended to use the modules of a
higher level. Making use of these modules however, also brings in some pollution; after
all you use only a limited amount of features of a module. The unused functionality wastes
(valuable) computer capacity. As you gain more experience in modelling with Arena you
will notice that the high level modules do not always offer the functionality required;
Replacing these modules by blocks or elements usually is a good solution in that case. The
modules from the various panels can be mixed together in one model without problem.
Let op: If you make use of blocks, Arena does not automatically create the associated data
modules. For example: When you use a Queue block you have to manually add the
definition and the properties of the used Queue. This can be done in the spreadsheet of by
using a Queue module from the Elements panel.
We discuss two important blocks in the next two paragraphs: The Queue and Alter block.

7.2.2 Queue block


Functionality: The Queue block models the queue that is integrated into many modules such as the
Process module and the Request module. When the entities have to wait before they can go
to the next process, entities are placed in a queue. We discuss this block here because the
Queue block offers an important feature: it is possible to give a maximum capacity to the
queue by using the Queue block.
Examples of practice: Examples of situations in which you can use the Queue block are:

At most 20 people on hold at a call center.

If there are more than 5 waiting customers at a counter, an additional counter is


opened.

Advanced Modelling

- 107 -

Properties: The dialog box of the Queue block is shown below. There are two fields inside this
block that are important to fill in; the Queue ID and Capacity.

Figure 7.16 Queue block dialog box

You specify the name of the queue under Queue ID. You have to create this queue
manually in the Queue spreadsheet field in the Basic Process Panel.
You specify the maximal capacity of the queue under Capacity. This indicates the
number of entities that can wait in the queue. As the picture of the Queue block shows, the
Queue block has two exits. The top exit is meant for the entities that will end up in the
queue. The bottom exit is used for the entities that will not go to the queue. Entities will
leave the bottom exit when you have specified a maximal capacity of the queue and when
this maximal number of entities in the queue has been reached.

7.2.3 Alter-block
Functionality: The Alter Block can be used to (temporarily) raise or lower the capacity of a
Resource. The times at which this occurs are variable and can be modelled using a
probability distribution.
Examples of practice: Situations modelled with the Alter block are:
Employees having to take a break to go to the bathroom.
Employees getting coffee once every while.
Properties: In the dialog box of the Alter block you can find a couple of fields. The only thing that
you have to specify is to which resource (s) the change in capacity will apply and what this
change will be. You can add a Resource with a capacity that changes at the moment an
entity enters the Alter block. This can be done with the "Add" button.

Advanced Modelling

- 108 -

Figure 7.17 Alter dialog box

The dialog box is shown in Figure 7.18. In this dialog box you select the resource whose
capacity will be changed, and how large this change should be. An increase in capacity is
modelled by using a positive integer; a decrease by the use of a negative integer.
The Alter block offers functionality very much equal to that of the Schedule module. The
only difference is that the change in capacity is fixed when using a schedule. By using the
Alter module this change can be based on a process, a condition or by chance.
Example: Adding an additional employee
This example is about adding an additional employee at the moment
the number of people in a queue exceeds a certain predefined
maximum value. A separate control-process (Create Decide Alter
Dispose) can be easily modelled; this process checks the queue length
once every 10 minutes and heightens the capacity of the resource by 1
(via the Alter module) if the queue length exceeds 10. This same
process lowers the capacity of the resource by 1 in case the queue
length drops below 5.

In order to use the length of a queue in an expression of a Decide-module, the construction


NQ(Queue name) exists. For example, when the queue is named clientqueue,
NQ(clientqueue) gives the present number in this queue. This expression can be used
anywhere, for example in the Decide module or in the Assign module. It can also be used to
show expression on screen. This means that the number indicating how many people are
waiting in the queue can be shown in the Animation on screen. Besides NQ() there are a
number of expressions available that can be used to show the state of resources,
transporters or conveyors. In Appendix D more about this subject is explained. In the Help
function you can find more information under: Arena Help Topics Index Variables. For
every construction of Arena it is given how the properties can be called up and how these
can be modified.

Advanced Modelling

- 109 -

Figure 7.18 Modelling of changes in capacity

Example: Employee goes to get coffee


Figure 7.19 shows a possible use of the Alter block. With this
construction you model a temporary change in capacity (consider for
instance the employee who quickly goes to get a cup of coffee).

Figure 7.19 Modelling of a temporary change in capacity

In the Create Module you create an entity at the time that the change
in capacity must occur. So for this you can use a probability
distribution, which you use to determine the time between two
temporary changes in capacity.
The created entity enters the Alter block and changes the capacity of
one or more resources.
In the Delay Module you specify the time a capacity change remains
(the time to get coffee can for instance be distributed uniformly).
In the Alter Block following the Delay Module you can annul the change
in capacity of the first Alter Block. The created entity has fulfilled its
function and can be removed from the module in the Dispose Module.

Advanced Modelling

- 110 -

7.3 MODELLING IN A STRUCTURED WAY


7.3.1 Sub models
Functionality: Arena offers you the option of splitting your simulation model into multiple levels.
This can be convenient when your model consists of a large number of building blocks. By
structuring your model in multiple levels you will have a clearer view of the model.
Examples of practice: An example of the use of submodels can be seen in the figure below.

Highest level

Level -1

Figure 7.20 Various levels in a simulation model.

Properties: Submodels can be added to the logics of the model in three different ways:
1.

You can add an empty submodel to the logic using the Submodel button (

) or by

selecting in the Object menu, and then Submodel the "Add Submodel".
2.

You can combine (aggregate) existing modules into a submodel.

3.

You set the Type of a Process Module to "Submodel".

Below we will discuss these three different ways. First we look into adding an empty
submodel. If you add an empty submodel using the Submodel button from the Standard
toolbar or via the menu, you place the submodel in the model window by clicking the left
mouse button. You will then see the module as shown on the left.

Figure 7.21 Submodel

You can open the submodel by double-clicking on it. An empty model window will appear
with a black triangle at the left and a black square at the right (see Figure 7.22). ). These are
respectively the entrance and exit of the submodel: Entities that enter the submodel from
the higher level, enter the submodel via the triangle and entities that leave the submodel
through the black square, leave the Submodel Module in the higher level. So the entrance
of the first module of the submodel is connected to the black triangle and the exit of the last
module is connected to the black square (see Figure 7.23).
Advanced Modelling

- 111 -

Tip:

If it is necessary that the submodel has more than one entrance an/or exit, this can be done
by clicking with the right mouse button on the submodel and selecting Properties. The
number of entrances and exits can be changed here. You can also add a description of the
submodel. After this change, there are model squares and triangles present in the submodel.
More entrances and exits have been added to the submodel block.

Figure 7.22 An empty submodel

Figure 7.23 Modelling in a submodel

The submodel can be closed by right-clicking in the model window of the opened submodel
and by then choosing the option "Close Submodel" (see Figure 7.24. on the left). A
submodel can also be closed via the "Object" menu, then "Submodel" menu, where you
select "Close Submodel" (see Figure 7.24 on the right). When you close a submodel, you
return to the model window of the level above the submodel that you closed.

Figure 7.24 Closing a submodel

Secondly we discuss the possibility of aggregating existing modules into a submodel. This
can be done in the following ways:
1.

Select the modules that you want to aggregate into a submodel.

2.

Select "Submodel" from the "Object" menu and then click on "Aggregate".

3.

The aggregated modules will now be represented as a submodel.

Figure 7.25 Aggregating existing logic into a submodel.

You can open the submodel by double-clicking on the Submodel Module, it works in the
same way as if you had created an empty submodel.
Advanced Modelling

- 112 -

The reverse is also possible: You can un-aggregate a submodel by selecting the Submodel
Module and then selecting "Object", then "Submodel" and then "Unaggregate".
Finally we discuss the last manner of using a submodel in the model. The third manner of
using a submodel in the model is by setting the Process Module to submodel. To do this
you select Submodel in the Type field of the Process Module dialog box. A black
arrow will appear in the left-hand top corner.
You can open this submodel by clicking with the right mouse button on the Process Module
concerned and selecting Edit Submodel.

Figure 7.26 Process Module as submodel.

Building the submodel in more detail is done in exactly the same way as we described
above.

7.3.2 Views
Functionality: Arena offers the possibility to create Views. By one click of a button you can jump
from one place to another in the Arena model. By pressing the specified button on the
keyboard, the screen that you assigned to this button will be shown.
Properties: By using the key ? on the keyboard, the dialog box Named Views is called up (see
Figure 7.27). This can also be done via the menu View and Named Views. In this
dialog box you can assign a key to the part of the Arena model that is currently on the
screen hot key. This screen can be shown by using this hot key anytime during the run as
well as when building a model.

Figure 7.27 The Named Views dialog box

Advanced Modelling

- 113 -

Fieldname

Explanation:

Key

The key refers to the View that is described under View Name

View Name

The name of the View. When you click the Add button, the dialog
box of Figure 7.28 appears with the following options:
Hot Key Here the hot key is assigned to the View that is currently displayed on
the screen.
Name Here a name can be assigned to the View.
Assign Name to Current View By ticking this box the current display can be assigned to the hot key
that has been filled in under Hot Key.

Show

Shows the View that has been selected on the left in the field.

Close

Closes the dialog box.

Help

Here you can get help on the View dialog box.

Table 7.1

The Named Views dialog box in detail.

Figure 7.28 The View Name dialog box

If a letter is entered under Hot Key, these letters are case sensitive.
Every submodel gets its own collection of Views. Therefore, it is not possible to navigate
through the different levels by using the hot keys.
All hot keys are displayed under the Navigate part in the project bar. It is also possible to
go to a View by clicking the concerned hot key in the Navigate panel.

Advanced Modelling

- 114 -

Appendices
Appendix A: Overview of toolbars
Appendix B: Run Setup and Reports
Appendix C: Errors
Appendix D: Expression Builder
Appendix E: Input Analyzer
Appendix F: Picture Placement
Appendix G: Probability distributions

Index

- 115 -

Index

- 116 -

APPENDIX A OVERVIEW OF TOOLBARS


Standard Toolbar

Button

Animate Toolbar

Meaning

Hot Key

Open a new model

Ctrl + N

Button

Insert a clock

Meaning

Open an existing model

Ctrl + O

Insert date

Saving the model

Ctrl + S

Add a Counter

Attach a Template

Insert a Level

Detach a Template

Insert a Histogram

Print the Model Window

Ctrl + P

Insert a Plot

Print Preview

Insert a Queue

Cut

Ctrl + X

Insert a Resource

Copy

Ctrl + C

Insert Global

Paste

Ctrl + V

Undo

Ctrl + Z

Repeat (last action)

Ctrl + Y

Animate Transfer Toolbar

Button

Split Screen on/off

Meaning

Insert a Storage
Insert a Seize Area

Zoom in on area

Insert a Parking Area

Layers

Animate a Transporter

Submodel

Insert a Station

Connect
Go (Start Simulation)

F5

Step (One step forward)

F10

Insert an Intersection
Build a Route
Build a Segment

Fast-Forward
Pause

Esc

Start Over (Rewind and again)

Shift + F5

End (End Simulation)

Alt + F5

Build a Distance
Build a Network
Promote a Path

Start Help function


Arrange Toolbar

Draw Toolbar

Button

Button

Meaning

Meaning

Bring forward

Draw a line

Send to back

Draw a poly-line

Group

Draw a Curve

Undo group

Draw a Bezier Curve

Mirror vertically

Draw a rectangle

Mirror horizontally

Draw a Polygon

Rotate

Draw an Ellipse

Align top

Add text

Align bottom

Select colour of line

Align left

Select colour of fill

Align right

Select text colour

Distribute equally horizontally

Select background colour

Distribute equally vertically

Select width of line


Select pattern

Index

- 117 -

Index

- 118 -

APPENDIX B RUN SETUP AND REPORTS


In this appendix we first look into the Run Setup. We discuss the tabs Project Parameters
and Replications Parameters. In the second part of this appendix we go into the Reports.

RUN SETUP
In order to be able to do experiments with the simulation model, data has to be specified
about the experiment and about the way in which the model has to be executed. This can be
done in the Run Setup. The Run Setup screen can be called up by clicking in the menu bar,
on Run, and then choosing Setup. The following screen appears:

Figure B.1. Run setup dialog box

In this appendix we only discuss the tabs Project Parameters and Replication Parameters.
The tabs Run Control and Run Speed are outside the scope of this manual and the tab
Reports is self-evident.
Project Parameters: If you want Arena to keep data about the e.g. queues, this can be specified in
the tab Project Parameters. Furthermore the generic data about the project is entered here.
For instance: The name of the project and the name of the person doing the experiment.
These data will reappear in the reports.
Replication parameters: In the tab Replication Parameters the replications are set. Not only it is
defined here how many replications the model should execute, but also what has to be done
with the various data that is collected during the replications.

Index

- 119 -

Figure B.2. Run Setup: Replication Parameters

Fieldname

Explanation:

Number of replications

Number of replications that has to be executed for this experiment

Initialize Between Replications

If you run more than one replication, you have the following options:

Statistics: Here you indicate if the statistics have to be erased after a replication has
ended.

System: In case you run several replications this is where you can specify if the

system has to be cleaned per replication. The variables are reset, and all
entities are removed from the system; resources get their original capacity
and transporters are reset. The model is in the same state at the
beginning of a new replication as at the start of the run.

Start Date and Time

The start data and start time are used to specify when experiment takes
place.

Warm-up Period

Here you enter the warm-up period. This period is not added to the
replication length but is a part of the replication length. In case you fill in
1 hour here, and the run should be 8 hours excluding the Warm-up
Period, then you have to fill in 9 hours under Replication Length.

Replication Length

The length of the replication.

Hours Per Day

The number of hours per day: This figure is needed by Arena to calculate
the various units of time. Often a simulated day has a length of 8 hours.
For example in a shop; at night nothing happens and therefore this period
is not interesting to simulate.

Terminating Condition

This is explained below in more detail.

Table B.1. Run Setup Replication Parameters in detail

Under Terminating Condition you can enter a condition based on which, the simulation run
will be ended. When this condition is met before the Replication Length has been reached,
the replication will be ended. The Terminating Condition is an expression for which it is
allowed to enter any expression.
Example
An example of a terminating condition: NQ(Process1.Queue)>10. This
means that replication will be ended as soon as the number of entities
in the queue Process1.Queue is greater 10.

REPORTS
By using the reports in Arena you can see what the model has resulted in. It is also possible
to answer the various questions for which you have built the simulation model. You can
indicate on which aspects of the simulation model data has to be recorded. This can be done

Index

- 120 -

in the Run Setup under Replication Parameters. This data can be viewed at the end of the
run by using the reports of Arena.
In the project bar, a panel Reports can be found. The names of the various reports refer to
the data that are in these reports. The report Resources, for example, contains all data
collected by the model on the resources in the simulation model. This can be for example
the Utilization (Inst Utill) and the number available (Num Scheduled).

Figure B.3. Resources Report

In the other reports more data can be found on the run. In the report category overview
the most important data on the simulation are summarized. This gives a first quick
impression about the run. Data in more detail can be found in the other reports in the panel.

Figure B.4. Category overview report

Furthermore it is possible to make your own type of report that meets your demands. This
can be done in the User Specified report. There the tallies are shown that you have
created in the model as well as the various queues and counters that can be kept by using
the Record module.

Index

- 121 -

Index

- 122 -

APPENDIX C ERROR MESSAGES


In this appendix we have displayed a number of frequently occurring error messages. For
every error message we give the probable cause and possible solutions.

GENERAL
Error message:

Cause: Arena is running without a license and during the run the maximum allowable number of
entities in the system was exceeded.
Solution: Run the model on a PC with a licensed version of Arena or amend the model so that fewer
entities are present simultaneously in the system.

Error message:

Cause: You are trying to give a name to a module that is already being used by another module.
Solution: Click on the "Find" button to find the module concerned (this can also be a data module!)
and change the name of the module concerned.
Error message:

Cause: There is a module in the model window the exit of which is not connected to another
module.
Solution: Click on the "Find" button to find the module concerned and connect it to the next module
or delete it.

Index

- 123 -

Error message:

Cause: A module has been found of which the required parameters have not or have not been
completely filled in.
Solution: Click on the "Find" button to find the module concerned and complete the required
parameters.

Error message:

Cause: A reference is made to a name that is not defined elsewhere in the model.
Solution: Click on the "Find" button to find the module that references the name. Edit this module
or define the name.

PROBABILITY DISTRIBUTIONS
Error message:

Cause: The parameters of the specified distribution are not filled in correctly.
In this case, the probabilities are not specified cumulatively. The parameter should have
read DISC(0.5,1,1,2).
N.B. In this case, the error has occurred in an Assign Module, but it can also occur in other
modules such as the Process or Delay Module.
Solution: Click on the "Find" button to find the module in which probability distribution is defined,
and specify the probability distribution in the correct manner.

Index

- 124 -

RESOURCE
Error message:

Cause: An entity wants to release a resource that has not been claimed (therefore the resource does
not have a busy status).
Solution: Click on "Find" to see in which module an entity is trying to release the resource and
ensure that the resource is claimed before entities try and release it.

ENTITIES
Error message:

Cause: The system is trying to dispose a temporary batch.


Solution: Ensure that temporary batches are first split into their original entities before they are
disposed or use permanent batches.

ROUTING
Error message:

Cause: In the Route Module that you can find by using the "Find" button, a station is defined as a
destination that has not been modelled.
Solution: Model the destination station or specify another destination station in the Route Module.

Index

- 125 -

Error message:

Cause: In the module that you can find using "Find", you have specified a routing based on a
sequence, but the entity to be routed has not been assigned a sequence.
Solution: Assign in advance a sequence to the entities that enter this module, or use another routing
method.

Error message:

Cause: You are trying to transport an entity with a Transporter, but the entity has not claimed a
transporter from the Transporter set concerned.
Solution: Ensure that all entities that enter a Transport Module have claimed a transporter from the
Transporter set.

Error message:

Cause: The entity has entered a Convey Module, without space (cells) being claimed on the
Conveyor.
Solution: Click on "Find" to see in which Convey Module the error occurs. Ensure that all entities
that use the Conveyor have claimed space. You model this in the Access Module or in the
Leave Module.

Index

- 126 -

Error message:

Cause: You are trying to dispose entities that claimed space (cells) on a Conveyor, from the system.
Solution: Click on "Find" to see in which module the error occurs. Ensure that all entities that exit
the system have no longer room claimed on the Conveyor. You model this in the Exit
Module or in the Enter Module.

VARIABLES AND ATTRIBUTES


Error message:

Cause: You are trying to assign the value Type A to Attribute 1 in the Assign Module, but the
name Type A is not defined anywhere or the value Type A does not correspond to a
number.
Solution: Define "Type A" or ensure that "Type A" corresponds to a number, for instance by
creating an attribute named Type A with a certain number as its value.

ANIMATION
Error message:

Cause: You have animated a station that has not been defined in a Station Module.
Solution: Model the station using a Station Module or remove the animated station.

Error message:

Cause: You have animated a resource that has not been defined in a Resource Module.
Solution: Define the Resource or remove the animated resource.
Index

- 127 -

Error message:

Cause: You have animated a Transporter that has not been defined in a Transporter Module.
Solution: Model the Transporter or remove the animated Transporter

Index

- 128 -

APPENDIX D EXPRESSION BUILDER


When building a simulation model you will have to build formulas regularly. Sometimes
these are simple formulas, in which for example two attribute values have to be added, but
sometimes these are more complex formulas in which for example the state of a queue,
resource or entity are factors. By means of the help function you can fairly quickly find
how to add information about model elements such as queues and resources in a formula;
but Arena also has a convenient tool which allows you to build formulas without needing to
have special knowledge of the Arena syntax: The Expression Builder.
The Expression Builder can be called up from any field of a dialog box or from a
spreadsheet in which you have to fill in a value or an expression. You place the cursor in
the field where you have to enter the value or the expression and then you right-click. In the
menu that appears you choose the option Build Expression (see images below).

Figure D.1. Calling up the Expression Builder

The dialog box of the Expression Builder is shown below:

Figure D.2. De Expression Builder

The elements you want to use in the formula can be selected in the field Expression Type.
These elements are ordered hierarchically in a tree-like structure. When you open the
Expression Builder, only the main categories of the elements are displayed. By clicking a
category, the elements that belong to this category are shown.
The number of categories that is displayed depends on the simulation model. In case you do
Index

not make use of certain elements of Arena, the related categories are not shown in the field
- 129 -

Expression Type. When you open the Expression Builder, the arrangement of the field
Expression Type can differ from that in figure D.2.
At the lowest level of the tree-like structure, you can click on the element that you want to
integrate in the formula. The syntax belonging to this element will then appear in the field
Current Expression. If one or more parameters have to be entered, these can be selected
at the right side of the dialog box. The figure shows how the formula is made which
describes the number of entities in the queue Leave to reprocess.Queue.

Figure D.3. Selecting an element number of entities in a queue

By using the buttons that are in between the fields Expression Type and Current
Expression, you can add mathematical operators to the formula field. However, this can
also be done via the keyboard. With these operators you build a formula consisting of
several elements. This can be used for example for a multiplication, an equation or an
AND- or OR-condition.

Index

- 130 -

APPENDIX E INPUT ANALYZER


The Input Analyzer is a standard part of Arena with many functions. In this appendix we
discuss two of these functions:
1. Finding a fitting probability distribution matching a certain data set.
2. Generating data sets on the basis of a probability distribution.
To open the Input Analyzer you select the Input Analyzer from the Tools menu.

A FITTING PROBABILITY DISTRIBUTION


In case you have a data set at your disposal, it might be useful to try to fit a probability
distribution onto this data set. Determining values in Arena is easier done by using a
distribution than by using a data set. In order to get to such a distribution a number of steps
have to be executed. Below we will go through these steps.
Step 1: Creating a new file
We need a file in which we can display the resulting probability distribution. The next step
consists of linking data set to this file. We can create this new file by clicking File in the
menu bar and by clicking New. The screen that is shown below appears:

Figure E.1. Input Analyzer

Step 2: Converting the data file to a .txt-file


Before we can link the data set to the new file we just created, we first have to convert the
data set to a text file. Very often programs are capable of exporting files to the .txt-format.
Tip:

It is important that there is only one column in this file. Only one probability distribution
can be fitted at the same time.

Tip:

You should use the dot instead of the comma for a decimal character. The Input Analyzer is
incapable of reading file that contain commas.

Index

- 131 -

Step 3: Linking the text-file with the new file


The next step consists of linking the text-file with the new file we created in Step 1. This is
done by clicking File, then clicking Data File and choosing for Use Existing (see
figure below).

Figure E.2. Linking the text-file

A new window is opened in which you can search for the data-file. Select this file and click
Open.
Let op: In this screen the standard setting is that it searches for file of the .dst-type. This has to be
changed to .txt-files.
Step 4: Data in the histogram
This is not really a new step. If you went through the previous step, your screen will look
approximately as the figure below.

Figure E.3. Histogram

You can read a number of things about the data from this screen. The screen is divided into
two parts: a data-summary and a histogram-summary. A number of properties are
mentioned such as the number of data points, minimal and maximal values etc.
Step 5: Fitting a probability distribution
The next step is Fitting a probability distribution. The easiest method for this is by
selecting Fit and choosing Fit All. This can be seen in the figure below. The Input
Analyzer is capable of evaluating various distribution types and finding the one that most
closely fits the data.
Index

- 132 -

Figure E.4. Fit All

The information about the distribution has now been added to the screen where the
summary of the data and of the histogram was display in Step 4. This is the Distribution
Summary
Let op: It is important that you look critically at the distribution that is returned as best fit. This is
because it is possible that the distribution that the Input Analyzer returns is not suitable for
the type of process for which you want to use the distribution. A distribution that might
result in a negative value for a process time is not what we would like. Using negative
process time is of course not possible. However, if you would use this distribution, Arena
will convert the negative values into zero. This means the distribution will have a higher
average than you would like, and that therefore the distribution is not valid anymore for the
real values.
Therefore, the probability distribution that is stated to be the best does not have to be the
distribution that you choose. An overview of the various distributions can be displayed by
clicking the button Fit All Summary (

). This can also be done via the menu bar. The

overview is sorted on the Square Error, the sum of the squares of the deviation between the
expected values and the real values. Furthermore it is possible to get an overview of the
data for each distribution. This overview can be called up by going in the menu bar to
Window and then to Curve Fit Summary. Here you choose the required distribution.
Except for the Fit All option, it is also possible to inspect how the distribution fits the
data for each distribution. For doing this you do not choose Fit All, but you select the
distribution that you would like to fit. In this way it is possible, for instance, to fit an
exponential distribution on a data set of an arrival pattern.

GENERATING A DATA SET


Except for the above mentioned, the Input Analyzer can be used for transforming a
distribution into data points as well. This is discussed below in a number of steps:
Step 1: Creating a new file
We need a file in which we can display the resulting probability distribution. We can make
this new file by going in the menu bar to File and then clicking New.
Index

- 133 -

Step 2: Determining probability distribution


The next step is to determine for which distribution you would like to generate a data set.
This is done by clicking File, then Data File and selecting Generate New (see
figure below).

Figure E.5. Generating a new file

By clicking Generate New, a new dialog box pops up. In this dialog box you can choose
which distribution you would like to use and with which parameters.

Figure E.6. The Generate dialog box

The dialog box can be seen above. We have chosen a uniform distribution with a minimal
value of 2 and maximal value of 20. Furthermore it is possible to indicate how many data
points we would like to have generated as well as where the filed should be saved.
By default the File Name is set to *.dst, this can be changed into any other name; for
instance a filename ending with .txt. This allows the file to be opened by other programs.
Step 3: The generated data set
When you went through the first two steps, the distribution appears on the screen as can be
seen in the figure below (Uniform (2,20)).

Index

- 134 -

Figure E.7. Data set histogram

Besides having displayed the distribution in a histogram, the Input Analyzer has also
created a txt-file. This file can be found in the location that you entered under File Name
(see step 2).

Index

- 135 -

APPENDIX F PICTURE PLACEMENT


Arena is supplied with a number of libraries that contain pictures, in order to support the
models with vivid Animations.
Using and changing these libraries is done through the Picture Placement dialog box. This
dialog box is used for entities, resources and transporters. The Picture Placement dialog box
of the resource looks equal to, and works similar as, the Picture Placement dialog box of the
transporter.

Figure F.1 Entity Picture Placement dialog box (left) and Resource Picture Placement dialog box

Fieldname:

Explanation:

On the left in the


Picture Placement
dialog box

All images from the standard library are shown in the left column. Images for an
entity can be selected from this library by clicking on them once.

Value (Entity)

The name of the selected image that is shown below it.

Identifier (Resource)

The name of the resource or transporter that you want to animate by using this
image.

Status (Resource)

The various statuses in your model of the transporter or the resource are indicated
by an image.

Add, Copy, Delete

Adding a new image, copying the selected image or deleting the selected image
from the standard library.

Size Factor

The size factor for the selected image.

On the right in the


Picture Placement
dialog box

The images of one of the other available libraries are shown in the right column.

Add, Copy, Delete

Adding a new image, copying the selected image or deleting the selected image
from an additional library.

<<

By using this button it is possible to transfer the selected image from the right to
the left column.

>>

By using this button it is possible to transfer the selected image from the left to the
right column.

New, Open, Save

Creating a new library, opening an existing one, or saving a changed library.

Table F.1 The Entity Picture Placement dialog box in detail

The possibility exists to make your own images or to change the current ones. In order to
do this you have to double-click on the images you want to change. A picture editor will
then be opened in which you can change the image. The picture editor is shown in figure
F.2.

Index

- 136 -

Figure F.2 The Edit Picture screen

By using this picture editor you can edit the images. You can use the Draw toolbar of Arena
for this. If you think the images and the draw toolbar do not suffice, then it is also possible
to past images from other applications into the picture editor screen.
Another possibility for animation of transporters in Arena is to create a ride point. This is
the place where the reference point of the entity being transporter by the transporter will
be shown on the image of the transporter. This point is defined by clicking Ride Point in
the Edit Picture screen of the Busy Transporter in the Object menu. If no Ride Point is
defined, the entity that is being transported will not be visible on the transporter in the
animation. The reference point of the entity is displayed by the symbol

in the picture

editor of the entity.


When you have finished editing the image, you can close the screen by clicking the close
window-button (the lower one, otherwise you will close Arena). As soon as you have
clicked this, you are back to the Placement Picture dialog box.
If you close the Resource Picture Placement or the Transporter Picture Placement dialog
box, a crosshair appears by which you can position the resource or transporter. When
animating entities this is not the case; those are not placed in the model.

Index

- 137 -

Index

- 138 -

APPENDIX G PROBABILITY DISTRIBUTIONS

When modelling e.g. delays and interarrival times, it is possible to use probability
distributions in Arena. We assume that, the theory of these distributions and when to use
them, is known.
Arena contains more distributions than are shown in the table below, but we do not discuss
these in this manual.
Probability distribution

Syntax

Continuous distribution

CONT(Prob1,Value1,Prob2,Value2, [,Stream])
Stream (optional): With this, the stream of the random
generator can be changed, so that for certain distributions
a different seed is used for the random generator.

Discrete distribution

DISC(Prob1,Value1,Prob2,Value2,,Stream])
Prob: Probability
Value: Value / Result

Normal distribution

NORM(Mean,SD[,Stream])
Mean
SD: Standard Deviation

Poisson distribution

POIS (Mean[,Stream])
Mean

Exponential distribution

EXPO (Mean[,Stream])
Mean

Triangular distribution

TRIA(Min,Mode,Max[,Stream])
Min: minimal value
Mode: modus
Max: maximum value

Uniform distribution

UNIF (Min,Max[,Stream])
Min: minimal value
Max: maximal value

Table G.1 Overview of probability distributions

Index

- 139 -

Index

- 140 -

INDEX
2
2-way by Chance ..................37
2-way by Condition ..............37
A
Access.............................82, 86
Access block.......................106
Access-module ...............86, 88
Accumulating .......................84
Accumulation Length...........84
Advanced Process ..................7
Advanced Transfer .................7
Allocation .............................25
Alter block..........................108

Entity ....................................14

Clear Option......................... 33

remove ............................102

Columns ............................... 33

search..............................102

Conditions............................ 37

Entity Picture........................35

Connect-button....................... 7

Entity Picture Placement .....15

Connector............................... 7

Entity Statistics...................105

CONT................................. 139

Entity Type ...........................35

Continuous distribution ..... 139

Entity.Sequence....................59

Convey ........................... 82, 87

Entity.Station........................52

Convey-module.................... 88

Error messages ...................123

Conveyor........................ 82, 99

Exit .................................82, 88

Accumulating................... 84

Exit-module....................88, 89

Conveyor-module ................ 82

Exponential distribution .....139

Copy entities ........................ 41

Expression Builder .......35, 129

Count.................................. 105

Animation
distance.............................73
Segment ............................85
Arrival pattern ......................16
Assign.....31, 32, 33, 34, 35, 59
attribute.............................34
Assignment...........................34
Assign-module .....................32
Attribute................................34
assign ................................34
J 103
Attribute name......................35
Auto Connect........................54
B
Basic Process..........................7
Batch.....................................41
Batch entities ........................41
Beginning Station ...........73, 85
Blocks.................................107
Blocks-panel.......................106
Blocks-template....................95
Build Expression ................129
C
Capacity................................18
Index

Capacity change......... 108, 110

Counter................................. 16
Cumulative........................... 38

False......................................36
Fast-Forward ......................117

File......................................100

Data modules ......................... 7

File-module ........................101

Data-set generation ............ 131

First In First Out...................22

Decide .................................. 36

Fit distribution function......134

Decide-module..................... 36

Flow orientation .....................2

Destination Type.................. 76

Flowchart modules .................7

DISC .................................. 139

Formulas.............................129

Discrete distribution........... 139

Free-module ...................77, 78

Discrete probability function 38

Dispose................................. 26
Distance ............................... 73
Distance-module .................. 72
Distributrion functions....... 139
Duplicate.............................. 43
Durations.............................. 96
E
Edit-mode............................... 8
Elements-panel............. 35, 106
Else....................................... 36
End simulation run............. 120
Ending Station...................... 73

Generate data-set ................133


Go .......................................117
H
Histogram .............................34
Hold ......................................97
Hold-module.........................97
Hold-Signal ..........................97
Hot key .......................113, 114
I
Ignore....................................19
Infinite Hold .......................102
- 141 -

Initial Picture ........................15

PickStation-module.............. 99

Initial Position Status ...........71

Picture Placement .............. 136

Initial Status..........................84

Plot ....................................... 34

Initial Values ........................33

Poisson distribution ........... 139

Input Analyzer....................131

Preempt ................................ 19

Interarrival times ................139

Priority ................................. 25

Process ................................. 23
Project Parameters ............. 119

S
Save Criterion.......................42
Scale Factor ..........................96
Schedule ...............................17
Schedule Rule.......................19
Search a Batch ....................104
Search a Queue...................104

Label...................................106
Last in First Out....................22

Run-mode ...............................8

Search an Expression .........104

Level.....................................34

Quantity ............................... 25

Search-module....................102

Limit .....................................98

Queue ................................... 21

Segment ................................84

Logic.......................................7

animation ......................... 22

Separate ................................43

Low level modelling...........107

capacity .......................... 107

Separate-module...................44

points................................ 23

Sequential .............................55

Queue-block....................... 107

Signal....................................97

M
Match-module ......................47
MAX...................................103

SMART ................................11

Menubar..................................6

Read from File ................... 101

MIN ....................................103

Read from Keyboard.......... 101

Model window........................7

ReadWrite .......................... 100

Record ................................ 105


Record-module................... 121

Named View.......................113
Next Stations ........................85
Next Step ..............................59
Non-Accumulating ...............84
Normal distribution ............139
Number to Match .................48
N-way by Chance .................37
N-way by Condition .............37
P
Panel .......................................7
Advanced Process ..............7
Advanced Transfer .............7
Basic Process......................7
Parent Activity Area.............53
Parking..................................54
Pauzeren .............................117
Permanent batch ...................42
PickStation............................99
Index

Signal-module ......................97

Remove .............................. 102


Remove-module................. 102
Replication Length............. 120
Replication Parameters ...... 119
Replications ....................... 119
Report Statistics ................... 15
Reports ....................... 119, 120
Request................................. 70
Request-module ................... 74
Resource............................... 18

Special constructions............95
Split entities..........................41
Start Over ...........................117
Statics ...................................35
Station...................................52
Station-module .....................88
Statistics .............................105
Step.....................................117
Step Name ............................59
Steps .....................................59
Submodel
aggregate ........................112
entrance ..........................111
exit ..................................111
Syntax.................................129

animation ......................... 20
capacity ............................ 18

status ................................ 18

Temporary batch ..................42

utilization ....................... 121

Terminating Condition .......120

Resource Picture Placement 20

Throughput time.................105

Route.................................... 99

Time Between ....................105

Route-button ........................ 55

Time Between Arrivals ........17

Rows .................................... 33

Time Interval ......................105

Run Setup........................... 119

Toolbar ...................................6
- 142 -

Animate ..........................117

Transport-module........... 76, 77

Variable ................................32

Animate Transfer............117

Triangular distribution ....... 139

Variable name ......................35

Arrange...........................117

True ...................................... 36

Velocity ................................71

Draw ...............................117

Standard..........................117
Toolbars..............................117
Transporter .....................70, 99

Uniform distribution .......... 139


Unit Number ........................ 75

Transporter Picture Placement


..........................................72
Transporter-button................72

Index

View ...................................113
W
Wait ......................................19
Warm-up Period .................120
Write data ...........................100

Variabele
define ............................... 33

Write to File .......................101


Write to Screen...................101

- 143 -

Index

- 144 -