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