Promodel: An Overview: Modeling Orientation
Promodel: An Overview: Modeling Orientation
ProModel is a powerful yet easy-to-use simulation tool developed specifically for engineers and
production managers to help improve the design and operation of manufacturing systems (for
example job shops, flow shops, assembly lines, kanban systems, etc.). The benefits of ProModel
include: Elimination of Bottleneck, Improved Operating Efficiency, Reduced Lead Times, Improved
Resources Utilization, and Reduced Inventories.
I. Modeling Orientation
ProModel allows you to model random events including random arrivals and
random equipment failures. Processing logic and other decision logic can be based on one
of many built-in rules or on logic defined by the modeler.
1
II. The Basic Elements of Promodel
(For more information, please refer to ProModel Users Guide)
A. General Information
The General Information dialog box allows you to specify basic information about a model, such as its
name, default time units, default distance units, and graphic library. You also may specify the model’s
initialization and termination logic. Finally, a notes window is available for specifying particulars of a
model, such as the modeler’s name, the revision date, modeling assumptions and the like.
B. Locations
Locations represent fixed places in the system where entities are routed for processing, storage, or some
other activity or decision making. Locations should be used to model elements such as machines, waiting
areas, work stations, queues and conveyors.
C. Entities
Anything that a model processes is called an “Entity”. Parts, products, people, documents, or phone calls
should be modeled as entities. Entities maybe grouped, such as when several boxes are stacked on a
pallet; maybe consolidated into a single entity, such as when a tire is joined to a rim to form a wheel;
maybe split into two or more entities, such as when a box is opened and the contents removed; or may
be converted to one or more new entities. Each entity type has a name and a name index number. Entities
may also have user-assigned attributes to represent such things as dimensions, weights, pass/fall status,
etc.
D. Path Networks
When resources are modeled as dynamic resources which travel between locations, they follow path
networks. Entities moving by themselves between locations may also move on path networks if
referenced in the move logic of the routing. Otherwise, they follow the routing path. Multiple entities
and resources may share a common path network. Movement along a path network may be defined in
terms of speed and distance, or simply by time.
E. Resources
A resource is a person, a piece of equipment, or some other device used for one or more of the following
functions: transporting entities, assisting in performing operations on entities at locations, performing
maintenance on locations, or performing maintenance on other resources. Resources consist of one or
more units having common characteristics, such as pool of service technicians or a fleet of lift trucks.
Resources may be dynamic, meaning that they move along a path network, or may be static, in which
no movement occurs. Resources may also have downtimes.
F. Processing
Processing defines the routing of entities through the system and the operations that take place at each
location they enter. Once entities have entered the system as defined in the Arrivals table, processing
specifies everything that happens to them until they exit the system.
2
G. Arrivals
Any time new entities are introduced into the system, it is called an arrival. Any quantity of any entity
type can be defined as an arrival foe a location. The frequency of arrivals can be defined as either a
distribution or as an arrival pattern which cyclically repeats over time.
Occasionally, none of ProModel’s built-in distributions can adequately represent a data set. In this case,
the user may define a User Distribution to represent the data set. User Distributions specify the
parameters of user-defined (empirical), discrete, or continuous probability distributions.
Weekly shifts and breaks for locations and resources are defined using the Shift editor and may start and end
at any minute of the day. Shifts and breaks are defined by selecting blocks on a grid divided into days and
hours. Once a weekly shift and break schedule has been defined, it may be saved in a shift file.
Attributes are place holders similar to variables, but are attached to specific locations and entities and
usually contain information about the location or entity. Attributes may contain integers or real numbers.
You may also assign model element names to an attribute, which is stored as the element’s index number
but may be referenced by name.
Variables are of two types: global and local. Global variables are place holders defined by the user to
represent changing numeric values. Local variables are place holders which are available only within the
logic that declared them. Variables can contain either real numbers or integers, including element index
values, and are typically used for decision-making or recording information.
K. Arrival Cycles
An Arrival cycle is a pattern of individual arrivals which occurs over a certain time period. Some
examples of arrival cycles that exhibit a pattern are the arrival of customers to a store and the arrival of
delivery trucks to a truck dock. At the beginning of the day, arrivals may be sparse, but as the day
progresses, they build up to one or more peak periods and then taper off. While the total quantity that
arrives during a given cycle may vary, the pattern or distribution of arrivals for each cycle is assumed to
be the same.
L. Streams
A stream is a sequence of independently cycling, random numbers. Streams are used in conjunction with
distributions. Up to 100 streams may be used in a model. A stream generates random numbers between
0 and 1, which in turn are used to sample from selected distributions.
3
III. Steps in Building ProModel Application
Click File and notice several options. We are going to create a new model, so select
New. The General Information Menu will appear and require the model name and the
default requirement of your model. The defaults you set on distance and time will be the
global default of the model.
Notice that another window, a Layout window, is also open. This is where the visual
image of your simulation model will appear.
A. Creating Locations
After creating a new model, go to Build menu. The Locations, Graphics and
Layout windows appear. We define our locations by making the appropriate selections
from the Graphics window and by making suitable entries in the Layout and Locations
window.
The popdown menu contains several items (and we shall use most of them), but the
most commonly used are the first 7. They are also listed in the order that model building
usually occurs. So, select Locations.
4
The next screen should look like this
Locations Edit
Table
Layout
Graphic
Window
Window
The table at the top is called an “Edit Table”. The table to the left contains the graphics file
you will use to represent different elements in the system you are modeling. Further
explanations on the field entries are discussed in Location Edit Table.
Now name the station. This is important: Uncheck the box labeled New.
To name the queue, click the Icon Aa (Label). Place the cursor near the queue icon
and click again. Notice how the dashed line around the queue changes to enclose the
textbox. You can’t actually name the queue in the textbox itself. To-name it, you have to
go up to the Edit Table and write the name in under the Name column.
5
The Location Edit Table
Icon This field displays the graphic used to represent the location during animation.
Individual units of a multi-unit location are automatically assigned the name of the parent
location followed by the unit number (For example Loc1.1)
Capacity The number of entities that the location can hold at any one time. The reserved word INF or
INFINITE sets the capacity to the maximum allowable value. Any numeric expression may
be entered here except for the system functions, name-index numbers, arrays, and attributes.
Note, however, that the capacity of a location is constant throughout a simulation. This
expression is evaluated before initialization logic is performed. The default capacity for a
location is one unless a counter, conveyor, or queue is the first graphic assigned to it. The
default capacity in that case is INFINITE. For conveyors, the capacity designated here is used
to limit the number of entities that can attempt to enter a conveyor. The length of the conveyor
and entity spacing controls the actual capacity of a conveyor.
Units The number of units at this location.
DTs Select this field to open one of the following downtime edit tables for adding any
Downtimes for this location.
Location Clock Downtime Editor is used to schedule downtimes for locations and is based
on elapsed time on the simulation clock.
Location Entry Downtime Editor is used to model downtimes when a location needs to be
serviced each time it processes a certain number of entities. For example, if
a paint machine needs to be refilled after painting every 100 cars. The
downtime occurs after the entity that triggered the downtime leaves the
location.
Location Usage Downtime Editor is used to model downtimes that occur after a location has been
operating for a certain amount of time, such as if a machine fails due to tool wear
after so many hours of operation. Most functions, including distributions can be
included in the Frequency, First Time, and Priority fields
Location Setup Downtime Editor is used to define downtimes for locations based on the entry
of a new entity type. Location setup downtimes occur after an entity enters a
location.
Multi-capacity locations may only have clock based downtimes.
For multi-unit locations, downtimes for the parent apply to each of the units. Downtimes for a
unit, however, override any downtimes for the same type for the parent
Stats Set this field to one of the following levels of statistics gathered for this location during run
time:
None – No statistics are gathered.
Basic – Gathers summary information such as utilization, average time per entry, etc.
Detailed – Gathers basic statistics plus standard deviations and usage history over time.
Rules To open the Location Rules dialog box, double clock this field, or click once and clock
the heading button.
6
Location Module
The Location module consists of an edit table for defining locations, and a Location Graphics
window for selecting Graphics to represent each location.
A. Creating locations
B. Adding graphics to a location
C. Moving locations
D. Displaying a location not in a view
E. Deleting a location
F. Removing location graphic
G. Editing a location graphic
A. Creating Locations
A dashed box encloses a location with multiple graphics. Add mode is selected by unchecking
the New box [ ] at the top of the Graphic Tools window.
To add an icon or symbol to an existing location
1. Uncheck the New Box in the Location Graphics window.
2. Select a location symbol or icon from the Location Graphics window.
3. Click the Layout window where you want the additional icon to appear.
4. The graphic or symbol is added to the location.
C. Moving Locations
7
D. Displaying Locations
E. Deleting a Location
To delete a location
1. Select the location record to be deleted in the Location edit table.
2. Select Delete from the Edit menu.
or
Right click on the location and select Delete Location.
F. Moving Locations
8
B. Creating Entities
After creating locations, click Build Menu, then choose entity. An entity windows and an
Entity Graphics Window will appear, as shown in the figure below. For the time being all we need to
do is to assign a name (monitor) and icon for our entity. The name field is used to identify entities of
this type in other menus (in Processing and Routing). The icon is used in animation screens when
the program us running. Ignore the Speed, Stats, and Notes fields for the time being. First select
the icon to be used by clicking a suitable icon in the entity graphic window. Note that a new line appears
in the Entities Window. This line gives the default properties for the entity corresponding to the icon
that you selected. Now, change the entity name to Monitor simply by placing the cursor in the proper
field and by typing the new name. If you by accident have created more than one entity, delete the
unwanted ones. Note: the icons shown in the Entity graphics window are the ones defined in your current
Graphic Library File. You may change this file, and/or define your own icons. Creating multiple graphic
icon for a particular entity is done by disabling the New button (Changing of icons on the Graphic
Editor will be discussed by your instructor).
Entity
Edit Table
Entity
Graphics
Window
New entity records are created either by scrolling to an empty record in the edit table and entering
an entity name, or by clicking on a library graphic displayed in the entity graphic window with the New box
checked.
Icon The graphic used to represent the entity during the simulation run, assigning multiple graphics to
an entity.
Name The name for identifying the entity.
Speed An entity’s speed in feet or meters per minute that is used while traversing a path network. (Units
are chosen under distance units in the General information dialog box). This entry is optional and
used only if the entity moves along a path network. Any positive numeric expression may be
entered as a speed, except for location attributes and resource and downtime system functions.
During simulation run, this expression is evaluated before each move, so the speed may vary as the
simulation progresses.
Stats Set this field to one of the following levels of statistics gathered for this entity type during run time:
9
C. Creating Processing and Routings
To build the processing is probably a little easier to do graphically. Click Build and
then Processing. You’ll see new Edit table, also called Process Edit Table and the
Routing Edit Table, as shown below;
On top of the Process table, click Entity Button and highlight Entity previously
created Monitor. Then click the location Button to specify the location at where you want
to describe the process of the Monitor. Then Click the Operation on top of the Edit table.
Then click “hammer” in the Operation window. A logic builder will now appear:
10
The Process Edit Table
Once you have defined the flow of the entities through the system, you then fill in the details for
each process record by entering the information in the fields of the edit table.
Entity The name of the entity that will be handled by this process. If all entities undergo the same
operation and/or have the same routing, the reserved word ALL may be entered. (See Using
ALL in Process Definitions.)
Location The name of the location where the process occurs. If several locations have the same
operation and outputs, you may enter the reserved word ALL.
Operation Operation logic is optional but usually contains at least a WAIT statement to signify the
time that the operation takes. Operation logic is entered by either entering a single operation
statement, such as a WAIT statement in the space provided or by selecting the field to open
up a larger window for entering multiple operation statements. Entities are processed at a
location independent of other entities being processed there. You may click inside of the
logic window with the right mouse button if you wish to bring up the logic builder.
Notes Processes may appear in the edit table in any order although, for the sake of organization,
it is best to group them according to either location or entity type. Routing may be omitted
from a process (see Routing edit table).
The Routing Edit Table appears side-by-side with the Processing Edit Table and determines the
output for each process record defined in the process edit table. All routings that appear in the Routing Edit
Table apply to the currently highlighted record in the Process Edit Table.
Not all process records need to have a routing defined. If the entity changes name, such as after a
RENAME AS statement, or if the process entity is defined as ALL while routings need to be defined by
individual entity, a subsequent process record should be defined for the entity at the same location for
specifying the routing. When no routing is defined for a process, the Process Edit Table will be searched
forward, and then again from the beginning of the table, for another process for that entity at that location.
This allows a process definition to be broken into several records. There has to be a routing for at least one
of the process records for an entity and location, otherwise an error occurs.
Blk This refers to the number of the routing block with which this routing is associated. A
routing block consists of one or more alternative routings form which one is selected based
on the block rule (e.g. a list of routings where one is selected based on the most available
capacity). Since all of the routings using the same rule are part of the same block, only the
first line of each routing block contains a route block number. If no routing blocks have
been chosen in the operation logic with a ROUTE statement, then all routing blocks will
be executed in sequence upon completion of the operation logic.
Output The name of the entity resulting from the process. This name may be the same as the entity
entered or it may be another name, or even several names, each on a different line. Using
another name works like a RENAME-AS statement, except that the entity is routed
according to the routing block, instead of being processed further at the same location.
Using several names on different lines is similar to having a SPLIT AS statement. The
difference is that multiple routing blocks are processed sequentially while split entities are
processed concurrently.
11
If the reserved word ALL was entered as the process entity, it may also be entered here;
otherwise every type of entity entering the location changers to the entity type specified
here.
Destination The location where entities are to be routed after the operation in the rule field. The
location name may be followed optionally by a comma and a routing priority (0 to 999).
Rule Select this field to open the Routing Rule dialog box which is used to choose the rule for
selecting the destination as the next location as well as the output quantity.
As an alternative to opening the Routing Rule dialog box, you may type the rule and
quantity directly into the field by typing at least the first letter of the rule followed
optionally by a space and a quantity.
Move Logic Select this field to open the Move Logic to define the method of movement as well as any
other logic to be executed upon movement. If this field is left blank, no move time or
resources are needed to make the move.
D. Creating Arrivals
Next, build the Entity Arrivals. Click Build and Arrivals. Fill in the appropriate
information in the Edit Table for Entity and Location:
Now go over to the Frequency column and right click. The Logic Builder window
should pop up. Select the distribution and enter the appropriate parameters.
The Arrival Edit Table
This module consists of an edit table used to define entity arrivals into the system and a Tools Window
for graphically creating arrivals.
Entering the reserved word INF or INFINITE will fill a location to capacity.
If the frequency of arrivals varies over time according to a pattern in an arrival cycle, you
may enter a quantity or factor allowed by a semicolon (;) and the name of the cycle (e.g. 1;
cycle1). Enter a quantity if the arrival cycle is defined by percentages. Enter a factor if the
arrival cycle is defined by quantities.
12
First time The time of the first arrival. Leave this field blank if the frequency should determine the first
time. The value entered may be any numeric expression except for attributes and non-general
system functions.
Occurrences Enter the number of arrival occurrences. Entering the reserved word INF or INFINITE
generates an unlimited number of arrivals. The value entered may be any numeric expression
except for attributes and non-general system functions. The number of occurrences is
evaluated only once at the start of the simulation (after any initialization logic). A zero value
will prevent any entities from arriving.
Frequency The time between arrivals. The value entered may be any numeric expression except for
attributes and non-general system functions. If you entered an arrival cycle as the arrival
quantity, then enter the time between cycles here. Note that the time-between cycles must be
equal to or greater than the length of the cycle itself. Otherwise, an error message will appear
indicating that one cycle is due to begin before another ends. A common error in this area
results when the modeler defines a cycle representing several hours and forgets to define the
time between cycles in hours by placing “hr” after the time.
Logic Select this field to define any arrival logic which consists of one or more arrival statements
to be executed by each entity when it is created (an entity is created only if there is available
capacity at the entry location.)
Disable Select this field to YES or NO depending on whether you want to temporarily disable this
arrival without deleting it.
Note: When several different entity types are scheduled to arrive at a location simultaneously, they
will arrive in the order that they are listed in the arrivals table. To make them alternate, enter
a 1 in the “Qty each” field and the total entry quantity in the “Occurrences” field.
IV Running a Model
Models may be run by choosing Run from the Simulation menu. Model data is automatically checked
for consistency and completeness before the simulation begins. Other ways to run models are: (1) clicking
Run from the Model Parameters dialog box or (2) clicking Run scenarios from the Scenarios dialog box.
The Simulation menu also allows you to specify a run length, a warm-up period and other special options
before running a simulation. A simulation may be run with or without animation and through several
replications.
During the simulation you can adjust the speed of the simulation, trace the activity of the
simulation and clock any location to display the current status of the location.
13
V. Other Important Tips
The mouse works by moving it until the arrow on the screen is pointing to the desired item or
position and then single or double clicking one of the buttons to initiate some action. By dragging the mouse
on objects, you can move or size the object. Most mouse clicking should be done using the left button. The
right button is reserved for special actions.
In addition to functions performed solely with the mouse, there are also functions performed in
connection with other keys.
Clicking with the left button on an object in the layout window while holding down the shift key
displays information about that object as well as edit option menu for the object.
Holding down the shift key while creating a line graphic queue or path network restricts all angles
to 15 degree increments.
B. Edit Table
An edit table is a window set up to record information dealing with model elements such as locations, entities
and resources, etc.
To move from record to record you may (1) use the cursor keys (UP, DOWN, PGUP, PGDN, CTRL+HOME,
CTRL+END), (2) scroll up or down using the scroll bar, (3) click on the record or (4) simply click on the graphic of any
model element displayed in the layout window.
14
The graphic representing the currently selected record is always highlighted in the layout window. To bring an
invisible graphic into view, click the graphic heading button in the edit table, or double click the field displaying the
graphic.
To add records to the end of a list, scroll to the first empty line below the last record in the list and begin
entering information for the new record
Data fields such as the name, graphic representation, etc. contain information about each record (line item) in
an edit table. Movement between data field is accomplished by clicking on the field or by using the TAB or cursor keys
(TAB or CTRL+RIGHT ARROW moves right, SHIFT+TAB or CTRL+LEFT ARROW moves left)
Some data fields can be edited directly by typing the desired information in the field space provided. Other data
fields are static and only display information that is entered from a menu, a dialog box or another edit table that is invoked by
selecting the field. Some dialog boxes may stay open even while information in an edit table is being edited.
Moving Records
Appending Records
Inserting Records
C. Removing Records
Edit menu commands pertain only to the currently active edit table window, even though multiple edit tables
may be open at the same time.
An edit table may be closed by double clicking on the Control-menu box, or by invoking another edit module
from the Build menu
Also, be aware that additional records may be added through right-clicking over objects such as routings,
locations, etc.
In addition to using the keyboard for data entry, the keyboard may also be used to perform certain functions
that are typically done using the mouse.
o To highlight a menu option, use the arrow keys to move to the desired option in the menu.
To highlight an option in a dialog box or edit table use the Tab key to move to the next
item. SHIFT+TAB moves to the previous item. For edit tables CTRL+LEFT ARROW or
CTRL+RIGHT ARROW can be used to change the highlighted item.
o When a menu or dialog box option is highlighted, pressing the Enter key will select
the option. Alternatively, if the option label has an underlined letter, typing the
underlined letter will select the option
o To cancel a dialog box or menu without selecting any option, press ESC
¾ Accelerator keys
o Many menu items have accelerator keys or key stroke shortcuts for selecting menu
options. These key stroke combinations are identified next to the menu option.
15