The Definition

Simulation is to monitor the behavior of the

systems by creating their models.

Başarılı Bir Simülasyon Projesinin

Adımları

• It is certainly not enough to use the simulation program well to realize a successful simulation project.

• Simulation is first and foremost a project, and as with any project, there are jobs and resources to be completed.

• Bypassing other steps and direct modeling at the beginning of the project will most likely fail.

Steps of a Successful Simulation

ProjectDetermination of the Problem

Setting Goals

Identification of the System

and Sequencing Assumptions

Generating of

Alternative Solutions

Collection of information

and data about the system,

Input Analysis

Building the Computer

Model

Checking the Validity

of the Model

Testing of Alternative

Solutions

Output

Analysis

Reporting

Why a Simulation Project Fails?

• The objectives are not clearly defined.

• Persons who will be affected by the project output are not included in the

project.

• Exceeding the project budget and time.

• Input data is incorrect or incomplete.

• Adding more details than necessary.

• Inclusion of variables with little impact on the system.

• The validity of the model cannot be proved.

• Making decisions based on observations from a single study of the model.

• Model output is actually cyclical while decision is made according to

average values.

• To enter into technical details while presenting the project to the

management staff.

Simulation with

Promodel

Basic elements of simulation models at

Promodel Production or service systems in ProModel,

• "Locations" representing workstations or machines placed in the layout

plan.

• “Entities” that enter the system and represent the workpieces that leave

the system after processing,

• Representing the paths and corridors that material movements will follow

"Path Networks",

• “Resources” representing resources such as operator or forklift used for

material handling or processing,

• Describes the logic of material movements or processes "Processes"

Main Elements

Locations

Entity Path Network

Resource

Exit Processing

Let's Create Our First Model

With ProModel

Sample System

Arrival Machine 1

Machine 2A

Machine 2B

Control

Operations Cycle Time

Arrive 12 dk

Machine 1 10 dk

Machine 2 20 dk

Control 9 dk

Exit

First Model in Promodel

In ProModel, simulation models

can be easily created by following

the items in the "Build" menu in

order.

Building a Model Step-by-Step

Step1- Basic Model Elements

1. General Information About the Model

2. Background Graphic, Adding a Layout Plan

3. Defining Locations

4. Defining Entities

5. Defining Arrivals

Step2- Paths and Resources

1. Defining Path Networks

2. Defining Resource

Step3- System Workflow

1. Defining Processes

2. Projecting the Workflow to the Model

General Information about The

Model

• Model Title

• Description of the Model

• Default time unit

(Seconds / Minutes / Hours)

• Length unit (Meter / Feet)

• What to do when simulation starts

(Initialization Logic)

• What to do when the simulation is over

(Termination Logic)

“> Build > General Information”

You can enter the information on the right by opening the window below

from the menu.

Adding Background Graphics “> Build > Background Graphics > Behind Grid”

After opening the menu, graphics with the extension of .wmf, .bmp, .gif,

.pcx can be added to the layout with “> Edit> Import Graphic”.

Entity Spot: • It is invisible during the simulation.

• Entity graphics in a location,

appears in entity spots.

Locations Points where events occur in simulation.

• Machines, queues, conveyors, geographic

locations, etc. are represented by

locations.

• In the layout plan, any graphic can be

displayed as well as locations or without a

graphic.

• The capacity of locations can be limited.

Capacity indicates how many entities can

be in that locations at the same time.

Locations

Defining Locations “> Build > Locations”

After opening the Locations window from the menu, any graphic is

selected from the Graphics window and click on the desired location in the

Layout window.

It can be created.

Arrival, Machine1, Machine2A,

Machine2B and Control points

Let's build.

On this page, breakdown times

and Location capacities

definable..

Entities

• Entities are elements that are operated in

the model.

• They represent workpieces, documents,

customers, projects, etc.

Defining Entities “> Build > Entities”

After opening the Entities page from the menu, any graphic is selected

from the Graphics window and the

workpiece It can be created.

The shape, color, dimensions and

speed is determined on this page.

A sample named Disli for our sample

model

Let's define Entity.

Defining Arrivals

“> Build > Arrivals”

How the workpieces will enter the system is defined from the page opened

with the menu.

Here, the entity that will enter the system, the location it will enter, how

many will come each time, the first arrival time, how many times it will

come, and the time between arrivals can be defined.

Building a Model Step-by-Step

Step1- Basic Model Elements

1. General Information About the Model

2. Background Graphic, Adding a Layout Plan

3. Defining Locations

4. Defining Entities

5. Defining Arrivals

Step2- Paths and Resources

1. Defining Path Networks

2. Defining Resource

Step3- System Workflow

1. Defining Processes

2. Projecting the Workflow to the Model

Path Networks

• Defines the paths to be followed by

resources.

• Path Network examples:

– Corridors between offices

– Intercity roads

– Forklift or pedestrian paths for the factory

Path Network Terminology

• Nodes

• Path Segments

• Interfaces

Path

Segments

Nodes

Interfaces

Speed and Distance - Time

Path Network Window

“Paths…”, “Interfaces…”, and “Nodes” buttons open the tables used to create these required elements.

Nodes

• Nodes are used in decision points and connection

points.

• Use nodes where Entity needs to make a decision and

where it will connect to any Location.

Path Segments • These are the paths to be followed when going from

one node to another.

• Each piece has its own distance or time information

and whether it is one-way or two-way.

Interfaces • Links specify the relationships between nodes and

Locations.

• When a resource is told to go to any Location, the

resource goes to the node to which that Location is

connected.

Links specify relationships between

nodes and locations.

Path Network

Interface

Nodes

Interface

Path Segments

Path Network for Sample Model “> Build > Path Networks”

From the page opened with the menu, it is defined which ways the

workpieces will move by following the system.

Let's draw the path network and make the connections for our sample

model.

Resources

• They are the elements used for processing entities.

• They represent workers, machinery or equipment

needed to perform a job.

• It can be fixed (static) or mobile (dynamic).

Resources arrangement window

Click on Layout to add a

Resource.

Resource Selection

Defining Resources

Resources for Sample Model “> Build > Resources”

References are defined from the window

opened with the menu.

Let's define a resource for our sample model and

make its name Operator.

Resource Characteristics

Building a Model Step-by-Step

Step1- Basic Model Elements

1. General Information About the Model

2. Background Graphic, Adding a Layout Plan

3. Defining Locations

4. Defining Entities

5. Defining Arrivals

Step2- Paths and Resources

1. Defining Path Networks

2. Defining Resource

Step3- System Workflow

1. Defining Processes

2. Projecting the Workflow to the Model

Processing • Which entity?

• Where?

• What is being done?

• What has it become now?

• Where will it go from here?

• Under what conditions?

• How will it get there?

3.1 Defining Processes

“> Build > Processing”

From the page opened with the menu, it is defined in which order and

logic the workpieces will move in the system.

After selecting the relevant Entity, Process is defined by selecting the

Locations where the movement will start and the movement will end.

The workflow, operation times, and logic of the system are defined by

Processes.

entity to

be processed

Location to

Begin Process Process

Location to go after

the operation

Entity to exit Move Logic

3.1 Defining Processes

If there are more than one alternative route in the workflow,

additional target locations are defined with the "Add Routing" button.

Makine 1

Makine 2A

Makine 2B

3.1 Defining Processes

The followings must be described in the Process Logic section to reflect the

workflow to the model.

1- Which Entity will go from which machine to which machine

2- Routing rules

4- Processing times and capacities of the machines

3- Which paths and resources will be used for material transportation?

3.1 Defining Processes

Reflecting the workflow of our sample system to the model:

Cycle Times Move Logic

Entity Location Operation Output Destination Move Logic

Disli Arrival Disli Machine_1 MOVE WITH Operator THEN FREE

Disli Machine_1 WAIT 10 MIN Disli Machine_2A MOVE WITH Operator THEN FREE

Disli Machine_2B MOVE WITH Operator THEN FREE

Disli Machine_2B WAIT 20 MIN Disli Control MOVE WITH Operator THEN FREE

Disli Machine_2A WAIT 20 MIN Disli Control MOVE WITH Operator THEN FREE

Disli Control WAIT 9 MIN Disli EXIT

3.1 Defining Processes

Running the Simulation Model

Running the Simulation

“> Simulation>Options”

After creating our model, we need to enter the following information about

running the simulation by entering the "> Simulation> Options" menu.

• Run time and Warm-up time

• Clock precision

• Initial situation, animation

and other information ...

Simulation Run Settings “> Simulation” Menu

Running the Simulation

To start the simulation:

- Click the "Play" button on the toolbar

Or

Select from the menu

Simulation | Run

Or

- Press the F10 key of the keyboard

Animation Control and Options

• The slider controls the

animation speed. Swipe left to

slow simulation.

• Additional options are available

by right-clicking on the layout.

Reports and Output Viewer

• We can record any data we want during the simulation

and use it after the simulation.

• Output Viewer organizes and displays the data collected

during the simulation

• Detailed information about that category can

be accessed by selecting the desired from

the tabs.

• More detailed options can be accessed by

right-clicking the desired cell.

General Report

General Report Simulation

Sample– Part 1 Answer the following questions using the general report.

1. What are the operator's usage rate and idle rates?

2. What percentage of the total time is machine 1 in use?

3. What is the average number of workpieces waiting in the

queue at any given moment?

4. What element is bottleneck in this system?

Category Graphics • Category charts are displayed as bar graphs,

comparing various locations, resources, entities or

variables in a specified category.

State Charts

• “State Charts” are graphs that

give status and usage rates.

• These charts give percentages

for each state of locations and

resources over time.

(operation, waiting, blocked,

down, etc.).

General Report Simulation

Sample – Part 2 1. Right-click in the Resource States table and

create a State Chart for the operator.

2. Right click in the Single Capacity Location

States table and create a State Chart to

compare the usage rates of Machine1,

Machine2A, Machine2B and Control points.

3. Create pie chart from state chart data for each

Location (double click on a bar in State Chart).

Histograms

• The histogram is a

bar graph showing

the percentage rates

of time-dependent

data.

• You can select the

items you want to

graph from the list.

Histograms • Histograms can

be changed to

mark Min, Max,

Mean, Median,

Mode and

Percentile values.

Time Plots

• It shows the time

and variation of the

status and

performance values.

• It allows us to see

the trends and

deviations of the

activities during the

simulation period.

Time Plots • When more than one

experiment is made,

the graphic can be

changed to create

min, max and

confidence interval

values.

Simulation Warm-up and Run Time

Warm-Up time is the time

it takes to run statistics

after running the model.

The Run Time period

specifies how long the

model will run after the

warm-up period ends.

Determination of Warm-Up Time •Run the model for 100 hours without warm-up period.

•Our performance criterion for this system is the hourly

production number.

•First, create the Time-Plot chart of the “CIKAN PARCA”

variable from the printouts, then export the data with the

extension .txt.

• This data shows the change of

the number of parts coming out

of our system over time.

• Then paste this data into Excel.

Determination of Warm-Up Time

• When we paste the data into Excel,

column A shows the time, column B

shows how many pieces have left

the system so far.

• We need the number of parts that

come out of the system in unit time.

• If we write a formula like "= B / A" in

column C, we will reach the data

we want.

• Then we need to graph this data.

Determination of Warm-Up Time

0

10

20

30

40

50

60

70

80

90

0 , 1

5 , 4

1 0 , 7

1 5 , 9

2 1 , 1

2 6 , 4

3 1 , 6

3 6 , 9

4 2 , 1

4 7 , 3

5 2 , 6

5 7 , 8

6 3

6 8 , 4

7 3 , 6

7 8 , 8

8 4

8 9 , 3

9 4 , 6

9 9 , 8

• As a result, we should have

obtained a graphic like the

one on the right.

• As can be seen from the

graphic, the amount of hourly

output after 25 hours hardly

changes.

• You can determine the

warm-up period by using the

Welch method in the

literature, or you can use the

graphic on the side.

Determining the Run Time • According to some researchers, it is sufficient that the run

time of the simulation is longer than the warm-up time.

• Some researchers argue that warm-up time should be at

least 10 times.

• Depending on the complexity of the model we have created

and how long the trials take, we can decide this period

between the warm-up period and 10 times this time.

Number of Replications

Number of Replications It shows how many times the

simulation will run under the

specified warm-up period and

run time.

• Why is a model run more than once under the same

conditions?

If we used probabilistic values in our model, the

computer somehow creates these values by generating

random numbers.

Each time we run the model, the computer uses the

different numbers and we have a lot of variance.

So we need to statistically significant sample size and do

much more replications.

Number of Replications

• Now run the sample a few times first to track the number

of parts that have appeared.

• (Warm-up period: 2 hours Run Time: use 10 hours)

• Then make Number of Replications 3 and click <All> in

the Replication section when the outputs are opened.

Number of Replications

In fact, each run gives separate results.

Number of Replications

Defining Number of Replications • Now set the number of harnesses to 100, close the

animation and run the model. (Warm-up: 2 hours Run:

10 hours)

Defining Number of Replications

534

534,5

535

535,5

536

536,5

537

537,5

538

538,5

1 7 13 19 25 31 37 43 49 55 61 67 73 79 85 91 97

Cumulative Sum

=SUM($A$1:A1)

Moving Average

=B1/C1

Input Analysis

• If we want our model to reflect the real system;

• We need to use the data that is closest to the real data

and reflects the deviations in the real system.

• For this, statistical distributions are used instead of the

average value.

• We can extract the statistical distribution of the data we

collect using the Stat :: Fit program.

Input Analysis 94,23

106,59

95,48

92,03

100,22

107,46

98,39

101,71

105,96

94,93

97,19

104,89

99,54

103,45

90,78

90,88

101,62

101,40

104,27

103,82

98,23

Stat::Fit

Mean = 100

Data collected

Distribution = N(100,4)

Modeling Elements of Promodel

✓ Locations

✓ Entities

✓ Path Networks

✓ Resources

✓ Arrivals

✓ Processing

➢Shifts

➢Attributes

➢Variables

➢Arrays

➢Costs

➢Macros

➢Model Parameters

➢Scenarios

➢Subroutines

➢Arrival Cycles

➢Table Functions

➢User Distributions

➢External Files

Scaling the Background

30’

Two known lengths are

sufficient to scale the layout we

put in the background.

Scaling • Each element created after scaling the background will

automatically be of the correct length.

Special Location Graphics

Counter

Tank/Gauge

Conveyor or Queue

Text

Status Light

Entity Spot

Region

Special Location Graphics: Queues • Queues and conveyors may look the same, but there are

many differences.

• When you define a place as a queue, Entity SPEED is

important.

• Entity SIZE is important when you define a place as a

conveyor.

Queue/Conveyor

To create a queue

1. Click on the

Queue / Conveyor

icon.

2. Start the queue with a

left click, left click again if

you want to add a

waypoint, right click to

finish.

Queue Features

• When we right click on the queue and

select Edit Graphic, the Queue / Conveyor

screen opens.

• We can make any adjustments we want

from this window.

Location Downtimes

Resources Downtimes

• It is two types: Clock-based, Usage-based

• The logic part should include how defective it will define.

• A resource can be unloaded before it enters a

malfunction.

•Entities can be represented by more than

one graphic.

•You can change the graphics of Entities in

Operation or Move Logic.

Entity Graphics

Assigning Multiple Graphics to the

Same Entity

Uncheck the “New” box.

Entity Graphics

Click on “Edit” to change the look

of the chart.

Entity Graphics

Only the first graphic appears in

the Entity table.

Entity conveyor dimensions can be

different for each graphic.

Graphic Command GRAPHIC <#>

Used to change the graph of Entity.

After the graphic command, type the number of the graphic you want to use.

Syntax: GRAPHIC <numeric value>

Example: GRAPHIC 2

Graphic 1

Graphic vNum

Graphic aNum

Entity Graphics _ Example Now, in our example model, let's make the gear

parts turn red after leaving Machine1.

For this;

• Open the entity screen from the Build>

Entities> menu

• Uncheck the new box for the gear entity

• Come to the gray square box reserved for

the Second Graph and click on the new

graph you want to add.

• Then, in the code part of the process that

started in Makine1, by adding GRAPHIC 2

Command, we can make the parts coming out of

Makine1 use the 2nd graphic.

Detailed Process Definition with

Processing • When we double click on the section under Operation in

the Processing window, a window opens where we can

explain the events we want to happen.

Logic Builder

Logic Builder is a module developed for you to write

ProModel's commands more easily.

• It contains all the objects defined by the user in the

model.

• It works in all departments that accept coding.

• It allows you to make sure that the code is spelled

correctly.

• It helps you learn the commands of ProModel.

When we right-click in this window, a window

appears in which the commands we can use are listed.

All commands are listed

here. When we click on the

commands, the top explains what

this command will do.

There is a detailed description of

all commands and an example for

each in the ProModel User Guide.

Detailed Process Definition with

Processing

Description of the

selected command

Buttons associated with

the selected command

Category selection: • All statements

• Basic

• Action

• Control

• Entity-related

• Resource-related

• Language syntax

Logic Builder

Click to open

Move Logic

section ...

You can open the Logic Builder for

Move Logic by clicking this button.

Move Logic It allows you to specify how Entity goes

from one place to another.

Movement commands are under the category of "Basic".

Logic Builder & Move Logic

Select the MOVE FOR

command and enter

the travel time.

When you're done, click Paste and close the window.

Move Logic The created

command

appears here.

MOVE COMMANDS • MOVE WITH <resource name>

– Entity goes to its destination through the specified

resource.

– Examples:

• Move with Operator

• Move with Operator Then Free

• MOVE ON <Path Network>

– Entity goes to its destination using the specified path,

but does not use resources. Speed is Entity's own

speed.

– Example:

• Move on Net1

• Routing Rules determine which route Entity will choose.

Rule Selection

Quantity (For split entities)

Routing Rules

• First Available: The first available in the order of the route

• Most Available: The least used so far

• By Turn: In order

• Random: Random

• If Join Request: According to the request of Join

• If Load Request: According to the request of Load

• If Send: According to the request of Send

• Longest Unoccupied: Longest used

• Until Full: Same until full

• If Empty: First Empty

• Probability: Possibly

(A route must be assigned to each route.)

Routing Rules

Open the Shift

Editor…

Shifts

Shift Editor is used to define

shifts

Shifts

• After defining shifts with Shift Editor, save

them.

• Use the Build> Shifts> Assign menu to

assign shifts to Resources and Locations.

Shifts

Commands to be

performed at the

beginning or end of the

shift can be written

here…

Multiple locations and multiple

resources can be assigned to

the same shift.

Different units of the same

resource can have different

shifts.

Shifts

When shifts are used, the

simulation time must be

determined weekly or selected

from the calendar.

Set the day, month, year and time for

the start and end of the simulation.

Simulation Options and Shifts

Attributes

Attributes are variables specific to each Entity.

It is used to identify properties of Entity that are different

from others.

General usage examples:

• Type number,

• Number of parts in the case etc ...

Attributes_ Examples

Let's give the type number of the parts in our sample model.

We have two types of parts and these two different parts are processed in different machines. To do this;

1- Create a new attribute in the Build> Attributes> menu and type "TIPNO" in its name.

2- In the Build> Processing> menu, open the operation of Disli Entity in Makine1 and write the following code;

DISPLAY “Tip Number=” , TIPNO

IF TIPNO = 1 THEN ROUTE 1

ELSE ROUTE 2

IF THEN ELSE command:

It is used when it is necessary to set a circumstance for an

operation.

Example:

IF Variable < 10 THEN

{

WAIT 5 MIN

Variable = Variable + 1

}

ELSE Variable = Variable - 1

IF THEN ELSE

• It stops the simulation and displays the entered message on

the screen.

Syntax:

DISPLAY “Message” $Var1$ “continue of the message”

DISPLAY “Message” ,Var1

Display Command Display Command:

Attributes _ Example

Let's assign random type numbers to incoming Entities.

Enter the Build> Arrivals> menu and create the

double click on the Logic part of the arrival record we are in. Type the following code in the window that opens.

• INT X // Creates a local variable

• X = RAND(100) // Assigns a random value between 0 and 100 to X

• IF X < 50 THEN TIPNO = 1 // If X is less than 50 (50% probability)

makes TIPNO 1

• ELSE TIPNO = 2 // If X is greater than 50 (50% probability) Makes TIPNO 2

Variables

They are used for

– Collecting statistical information,

– Making calculations,

– And creating more advanced model logic,

– Show counters and statistics on the screen.

• Click on the name of the variable and then on

the Layout window to show a counter on the

screen.

• To put a label on the counter, click text on

the Build> Background Graphics> Front of Grid

menu.

Variables

INC Increases the variable by the specified value.

Inc dCounter

Inc dCounter,5

DEC Decreases the variable by the specified value.

Dec dCounter

Dec dCounter,2

INC & DEC Commands

Commands Related to Variables We can do all simple mathematical operations with

variables.

Example: dCounter1 = dCounter2*5

dVariable1 = ((5+7)*8)/9 etc...

Also, we don't always need to use the name of the

variable. We can also use the sequence number.

Example: variable(1) = 10 WHILE X < 10 DO

{

variable(X) = X+10

inc X

}

Variable _ Example

Now let's add a counter to our model and count how

many parts come out of the system.

To do this, we first need to define a variable named

PRODUCT.

Next, let's add a counter that shows the value of this

variable by clicking somewhere in the layout.

Finally, we can increase this counter by adding the

"INC PRODUCT" command to the last process.

Arrays

Arrays can be simply defined as variables that are

ordered as a series.

10 11 9 7

12 10 10 8

11 12 9 7

Machine1

Machine2

Machine3

Piece1 Piece2 Piece3 Piece4 3th piece

operates in

2nd machine

with 10 sec.

An array

(a matrix) of 3X4

Arrays

The name of

array Dimensions of

the array

Type of the array

(Integer – Real) The sequence can be read from an Excel spreadsheet

at the beginning of the simulation or

printed at the end of the simulation.

Between two attempts, the

values in the arrays can be

preserved or deleted.

A Few Examples of Process

Logic WHILE DO Command:

It is used to repeat a process a certain number of times.

Örnek:

WHILE X < 10 DO

{

ARRAY[X] = 10

X = X + 1

}

Name of the

Macro

Text Options of the Macro

Macros

Macros are texts that we can call from any code part of the model.

If we use the same code in many parts of the model, we can define this

code as a macro and call it from the same place.

Thus, when a change is required in this code, all codes can be changed

from one place.

Macros _ Example We can define any code we use in the model as a macro

and call it from wherever we want.

In this way, we do not need to copy / paste, but when we

are going to make changes to the code, we only do it from

one place, all the processes are changed.

Now, let's define the operation of machine 1 as a macro and

call it.

RTI (Run Time Interface)

Macros The RTI makes the macro modifiable as a

parameter.

• It allows us to easily change parameters at the beginning

of the model.

• It allows us to try multiple scenarios in an order.

• It is necessary for optimization studies with Simrunner.

Parametre Name

At the beginning of the

model, the user can be

asked what this value

should be.

Range values

RTI Macros

Macros can be used in machine

capacities, resource numbers, or

any command in operation or move

logic.

RTI Macros

Macros can be used in

machine capacities, resource

numbers, or any command in

operation or move logic.

Model Parameters

Click the Add button to create a new scenario.

After determining the name of the scenario, set the parameters as desired.

Scenarios

After defining all the scenarios, click the Run Scenarios button.

Scenarios

Scenarios and Graphics • You can create graphics for your results with separate

scenarios.

Subroutines

Subroutines are used in cases where the same code is

located in more than one part, just like Macros.

The difference of subroutines from macros is that they are

parameters of subroutines. This gives ProModel an

object-oriented working feature.

You can optionally use parameters when calling a

subroutines. A result can be returned for the parameters

that you work like a subroutines function and give to you.

If you call a subroutine with the "Activate" command, Entity

continues on its way without waiting for the subroutine to

end.

Subroutines _ Example

Now let's define the operations of Machinery 2A and 2B as subroutines and use them.

For this;

• Define a subroutine named OPERATION2.

• Define an integer parameter named AVERAGE in this subroutine. This parameter will represent the average value of the processing time with a normal distribution..

• Then come to the Process section and copy the processes we want to subroutine.

• Then enter the code that will call the subroutine into these processes, together with the average value;

OPERATION2(20)

Arrival Cycles Arrival cycles are used to define how much Entity will arrive

to the system at what times.

For example, while there are not many customers coming

to the banks in the morning, there is an intensity towards

noon.

Let's say that according to the data we collect,

customers come to our bank at the following rates

according to hours.

Arrival Cycles

Clock Customer Ratio

09:00-10:30 %10

10:30-11:30 %15

11:30-13:00 %30

13:00-16:00 %15

16:00-17:00 %30

Accordingly, we should create our

Arrival Cycle table as shown below.

Table Functions

It is a very useful and easy tool that we can determine its

simple functions with the help of tables.

After determining our function with the table, when we call

the table with our independent variable, it returns the

dependent variable to us. Example:

ProcTime(1.5) = 150

Example 2:

We can also define nonlinear functions.

Table Functions

User Distributions If we have a data set that does not fit any of the existing

statistical distributions, we can define a distribution that

will reflect this data set with ProModel's User

Distributions module.

Special distributions can be

Discrete or

Continious.

It is called like a function: SpecialDistribution()

Example: x = ComponentType()

attribute = ComponentType()

variable = dComponentType()

User Distributions

Click on "Table" to open the distribution definition table.

Special Distribution Table

External Files External files can be used to read or write data

instantly while the simulation is running, or to get some

information before the simulation starts or to create

some reports after it has finished.

External File Types:

• General Read files

Only numerical data can be read from these files.

These data must be separated by spaces or commas.

The texts in between are ignored.

• General Write files

These files can be written in both numerical and text formats.

External Files

External File Types:

• Entity - Location

With these files, the operation times of different Entities in different

Locations can be read.

External Files

EntA's operation time in

Loc1

External File Types:

• Arrivals

With these files, arrivals can be read from the Excel spreadsheet.

External Files

Adding Comments to the Code • Adding comments to the codes you write makes it easy for

someone to understand the code or find errors later.

• Anything written on the same line after the # and // symbols

are perceived as comments and are ignored.

• /* and */ symbols are used for multi-line comments.

Everything written between these symbols is perceived and

ignored by the program as a comment.

GET & FREE GET

Syntax: GET quantity <resource name>

Example: GET Nurse

GET 2 Machinist

FREE / FREE ALL

Syntax: FREE quantity <resource name>

Example: Free Machinist

Free Nurse

Free All

ACCUM Command ACCUM

It is used to accumulate the specified amount of Entity.

It does not group entities.

Syntax: ACCUM <numeric expression>

Example: ACCUM 4

Clock Function • It is the system function that takes the current time from the

simulation clock.

• Uses the default time unit, unless otherwise specified.

• It is generally used in Operation, Move Logic or Arrival Logic.

Clock(<time unit>)

Example: aEntity_Arrival_Time = CLOCK()

aStart_Time = CLOCK(hr)

aFinish_Time = CLOCK(min)

LOG • It reports the time written on any attribute of that Entity by

subtracting it from the current simulation clock.

• It is usually used to calculate the time a part spends in any part of the system.

Örnek: LOG “Text”, <Attribute>

LOG “Waiting time”, Attribute1

LOG “Time in System”, Arrival_Time

LOG Reports

CREATE Command • Used to create a new Entity.

• You must create a new Process for the created Entity.

• It carries all the attribute values of the Entity that creates the

new Entity.

Syntax: CREATE <#> AS <Entity>

Example: Create 1 As XRay_Film

ORDER command • This command is used to create a new Entity.

• The difference of this command from Create is that Entity

can be created in the desired Location.

• If the capacity of the created Location is not sufficient,

Entities exceeding the capacity will be destroyed.

• The new Entity carries all the attribute values of the created

Entity.

Syntax: ORDER <#> <Entity> TO <Location>

Example: ORDER 10 Gear TO Machine1

JOIN Command

Combines Entities with the main Entity forever.

The command must be run by the main Entity.

"If Join Request" must be selected in the Routing Rule section of the side Entities that will join the Main Entity.

The "If Join Request" rule keeps the Entity to be merged in its current place until it executes another Entity JOIN command.

Syntax: JOIN <Quantity> <Entity>

Örnek: JOIN 2 Door

JOIN Komutu

Unless the body doors are called

with the JOIN command, assembly

will not take place.

Operation Logic:

Join 1 RightDoor

Join 1 LeftDoor

Assembly Point

LeftDoor is waiting

for assembly.

Move Rule:

IF JOIN REQUEST

RightDoor is waiting for

assembly.

Move Rule:

IF JOIN REQUEST

Summary

✓ Locations

✓ Entities

✓ Path Networks

✓ Resources

✓ Arrivals

✓ Processing

✓Shifts

✓Attributes

✓Variables

✓Arrays

✓Costs

✓Macros

✓Model Parameters

✓Scenarios

✓Subroutines

✓Arrival Cycles

✓Table Functions

✓User Distributions

✓External Files

Get help from top-rated tutors in any subject.

Efficiently complete your homework and academic assignments by getting help from the experts at homeworkarchive.com