ProModel User Guide-2
ProModel User Guide-2
User Guide
menu. These selections and their submenus are the submenu shown here. If the Views dialog
discussed in more detail on the following pages. appears, skip step 3.
Views
The Views feature allows you to define, then
quickly and easily access specific areas of the
model layout. Selecting a view scrolls the layout
window and adjusts the zoom so you see a spe- 4. With the Views dialog open, select the
cific region of the layout regardless of the layout area in the layout window you want to define
as a view using the scroll bars and zoom fea-
window’s size. Once a view is defined, you can
ture in the View menu. Or size the layout win-
select it while editing or running the simulation
dow to the desired view.
by selecting the view from the View menu or by
using the keyboard shortcut. 5. With the layout window set, type a name
for your view in the View Name field at the
bottom of the Views dialog, and then click
Defining & Selecting Views the Add button to define the view you have
selected in the current layout window.
How to define a view: 6. The name you have entered will appear in
your list of views.
1. At edit time, select the View menu.
2. Select the Views item. If no defined views
exist, the Views dialog is displayed and not
Please note
How to select a view from the Move Up Moves the currently highlighted
menu: view up one position in the list creating a corre-
sponding change to the menu and CTRL+ n
order.
1. At edit time or run time, select the View
menu. Move Down Moves the currently highlighted
2. Select the Views menu item to display the view down one position in the list creating a cor-
submenu list. responding change to the menu and CTRL+ n
order.
Rename Renames the currently selected view
to the name you have typed into the View Name
field.
Set View Sets the highlighted name in the View
3. Click on the desired view from the sub- list to the portion of the model currently visible in
menu. the Layout window.
View Name This is the field where you type
the name of the view you wish to add.
How to select a view with shortcut Show View Checking this box will cause your
key CTRL + n: views to be displayed in the Layout window as
you select them in the list.
• Press CTRL + n to select the desired view
where n is the number (1-9) of its position in Using Views at Run-time
the view list (e.g., pressing CTRL + 1 would
access Single Screen Zoom from the view list When the simulation is running, you may choose
above and CTRL + 3 would access the Wait- the active view by picking its name from the
ing Time Zoom view). Views beyond nine will Views menu or the Views Panel.
not have a CTRL + n shortcut key.
The Views menu is accessible during run-time
from either the Menu Bar’s Option menu or the
Right-Click menu.
Managing Your Views The Views menu will display a list of your
When you click on Define from the Views menu, defined views. There is also an option to open the
the Views dialog is displayed. It lists the defined Views Panel.
views in the Views List and provides buttons for
adding views, removing views, and managing the
list. The function of each button is described
next.
Add Adds the view, which you have named in
the View Name field, to the list of views.
Remove Deletes the currently highlighted
view from the View List.
86 Chapter 4:
View Menu
The Views Panel is a dialog window with a list of 2. Choose any preset zoom level, or the Cus-
your defined views. tom Zoom option.
Zoom Feature
The Layout Settings submenu contains selections
The Zoom feature allows you to shrink or enlarge for changing the grid characteristics, color of the
the layout by the percentage selected. layout window background, and the routing
arrow colors. These, as well as default setting
How to zoom in or out on the lay- changes, apply to any currently loaded model. To
out: change any of these items for the current model
only, use the options provided in the General
1. Select Zoom from the View menu. Information dialog. The routing path color can be
changed for the current model only by selecting
the Path Options button in the Processing mod-
ule.
ProModel 87
User Guide
Please note
Grid Size
By using the grid dialog box, you may set the res-
olution of the grid lines to your preference.
To change the color of the grid lines, select the The “Recalculate path lengths when adjusted”
Ones button and choose a color. To change the option applies to path networks, conveyors, and
color of every tenth grid line, select the Tens but- queues. For details regarding recalculation of
ton and choose a color. times and distances when editing path segments,
see “Path Networks” on page 123.
Grid Scale
In addition to setting the resolution of the grid
Background Color
lines, you may also associate a time and distance The Background Color option allows the user to
value to each grid unit. This is extremely useful change the background color in the layout win-
when you are creating conveyors, queues, or path dow.
networks to scale and you want the time or dis-
tance between nodes to be based on the number How to set the background color
of grid units between the nodes.
of the layout:
as background graphics, can use any custom How to specify the routing colors:
color defined in the colors menu.
When creating a custom color, the nearest solid 1. Select Routing Path Color from the View
color is shown next to the dithered color for refer- menu.
ence.
Please note
Layout
The options in this toolbar open the respective
build modules. Mouse over a toolbar button to
Show Grid Check this switch to show the grid see its function and then refer to Chapter 6 for
in the layout window. information of that build module.
Show Hidden Networks Check this switch to
show the invisible path networks during editing.
A path network can be made to be invisible by
ProModel 93
User Guide
Right-Click Menu Views From this option, you may select from
the views defined in the model.
To simplify many of the steps required to per-
Zoom to Fit Layout This option resizes the
form common modeling operations, ProModel
model to fit the entire image in the layout win-
includes a variety of right-click menus. From
dow.
these menus, you can access context-sensitive
options and settings for variables, locations, pro- Zoom Allows you to select the zoom percent-
cessing, path networks, resources, and other com- age.
ponents. The following menu appears when you
Layout Settings From here, you may select and
right-click on the layout.
define the grid settings, background color, and
routing color.
Refresh Layout This option refreshes the image
to reflect recent changes.
Please note
Locations or...
Layout Window
location, click on the heading button to open the Edit Button Displays the Library Graphic Dialog
Location Rules dialog box. Box used to change the color, dimensions, and
orientation of the location graphic.
Notes Enter any optional notes about a location
in this field or click on the heading button to open Erase Button Erases the selected location
a larger Notes window. graphic in the Layout window without deleting
the corresponding record in the Location edit
table.
Location Graphics Window
View Button Brings the selected location in the
The Location Graphics window provides a graph- edit table into view on the Layout window.
ical means for creating locations and changing
their icons.
How to define a new location
graphically:
New Box
1. Check the New Box in the Location Graph-
Counter
ics window.
Gauge/Tank
2. Select a location symbol or icon from the
Conveyor/Queue
Location Graphics window.
Text Label
Status Light 3. Click on the Layout window where you
want the location to appear.
Entity Spot
Region 4. A new record is added automatically to
the Location edit table. You may now
change the default name to the desired
location name.
• Drag the graphic to the desired spot on the How to erase a location graphic:
layout.
1. Click outside of any graphic and drag to 2. Select Delete Graphic. The location
create a rectangle encompassing all of the graphic disappears, but the location record
graphics to be moved. still exists in the Location edit table.
2. Drag the rectangle to the desired position
on the layout.
How to bring a location graphic
into view that is off the layout:
How to delete a location:
1. Highlight the record of the desired location
1. Select the location record to be deleted in in the Location edit table.
the Location edit table. 2. Select the View button in the Location
2. Select Delete from the Edit menu. Graphics window or click on the icon head-
ing button.
or...
1. Right-click on the location graphic in the
layout window.
100 Chapter 5:
Locations
1. Uncheck the New Box in the Location Label Any text used to describe a location. The
Graphics window. label is initially synchronized with the name of
the location and changes whenever the location
2. Select a location symbol or icon from the
Location Graphics window. name is changed. The name, size, and color of the
text may be edited by double clicking on the label
3. Click on the Layout window where you or selecting it and clicking on the edit button (see
want the additional icon to appear.
“Text Tool” on page 324). Once the name on a
4. The graphic or symbol is added to the label is edited, it will no longer be automatically
location. changed when the location name is changed.
Status Light A circle that changes color during
the simulation to show the location’s status. For a
Location Graphics single capacity location, the states displayed are
idle/empty, in operation, blocked, down, and in
A location may have any one or more of the fol- setup. For multi-capacity locations, the displayed
lowing graphics selected from the Location states are up (operational) and down (off-shift, on
Graphics window. break, disabled).
Counter A counter representing the current Entity Spot An assignable spot on the layout
number of entities at a location. The options where the entity or entities will appear while at
available with counters are explained next. the location. While an entity is at a location, the
entity’s alignment spot (defined in the Graphic
Gauge A vertical or horizontal sliding bar
editor) will appear exactly on top of the location's
showing the location's current contents during the
entity spot, allowing the two graphics to align
simulation (shown as a percentage of the capac-
exactly as desired. A multi-capacity location will
ity). This graph will be updated constantly as a
use as many entity spots as defined (in the order
simulation runs. The options available with
defined) up to the capacity of the location. Enti-
gauges are explained below.
ties in excess of entity spots will continue to pile
Tank A vertical or horizontal sliding bar show- up on the last entity spot defined.
ing the continuous flow of liquids and other sub-
Region A boundary used to represent a loca-
stances into and out of tanks or similar vessels.
tion's area. A region may be placed in the layout
This continuous modeling capability can be com-
over an imported background such as an
ProModel 101
User Guide
Please note
or tank on the layout, double click on the gauge currently chosen options is shown in the lower-
or tank to display the gauge/tank dialog box, left corner.
select the gauge/tank and click on the Edit button,
or right click on the gauge or tank and select edit
graphic. From the gauge/tank dialog, you may
change a gauge to a tank and define its appear-
ance, orientation, and fill direction. You may also
access this dialog by selecting the gauge or tank
and clicking on the Edit button.
you checked the “Recalculate path lengths when entity on a conveyor is calculated using the fol-
adjusted” option. You can access this option from lowing formula:
the Tools menu under Options.
Time = (Conveyor Length - Entity Length or
Width)/Conveyor Speed
Conveyors And the percentage utilization is calculated using
A conveyor is a location that simulates the move- this formula:
ment of entities on either an accumulating or non-
accumulating conveyor and appears with a con- ∑ tc
veyor graphic. Entities can only enter a conveyor all Cc
entities
at the beginning and leave at the end. For accu- Util % =
mulating conveyors, if the lead entity is unable to T
exit the conveyor, trailing entities queue up
Where:
behind it. For non-accumulating conveyors, if the
lead entity comes to a stop, the conveyor and all tc = the time the entity spent on the conveyor
other entities stop. Entities on a conveyor may whether moving or not
not be preempted by other entities.
Cc = the conveyor capacity for that entity
The capacity assigned to a conveyor limits the
number of entities that can access a conveyor. T= the total simulation time
However, the cumulative total length or width of
the entities on the conveyor cannot exceed the Please note
conveyor length. In fact, the utilization statistics
for a conveyor reflect the amount of space uti- Unlike queues, MOVE statements for conveyors
lized on the conveyor throughout the simulation, may not include a move time. Processing logic
not the number of entities occupying the con- executed at the end of the conveyor may contain
veyor. Unlike other locations, an entity is not any operation statement except for CREATE,
routed to the conveyor until there is room at the SPLIT AS, UNGROUP, or UNLOAD. Addition-
beginning for the entity to fit, even if the con- ally, the ACCUM, COMBINE, and GROUP
veyor has capacity to hold it. statements are not allowed at the end of non-
ProModel executes operation logic for entities accumulating conveyors.
entering a conveyor as soon as they enter unless
the logic follows a MOVE statement. If no
MOVE statement is encountered, entities begin
their move on the conveyor after processing any Due to the space limitations of a conveyor, cer-
logic. If a MOVE statement is encountered, entity tain operation statements at the beginning of a
movement is initiated. Any logic defined after a conveyor are invalid including ACCUM, COM-
MOVE statement is processed when the entity BINE, CREATE, GROUP, SPLIT AS,
reaches the very end of the conveyor. UNGROUP, and UNLOAD.
Move time on a conveyor is based on the length The default conveyor length is determined by the
and speed of the conveyor, as well as the length graphic scale, although this may be overridden by
or width of the entity. The move time for an entering a different length. When a conveyor is
modified graphically, the length will automati-
ProModel 105
User Guide
cally be recalculated based on the graphic scale 4. Move the mouse in the desired direction
unless you uncheck the “Recalculate path lengths and click on the right mouse button to end
when adjusted” option. You can access this the conveyor.
option from the Tools menu under Options.
Capacities
A location capacity is the maximum number of
entities it can hold at any one time. In general,
multi-capacity locations are used to model loca-
tions such as queues, waiting areas, or any other
type of location where multiple entities may be
held or processed concurrently. Consider the fol-
lowing multi-capacity location:
Turn, Fewest Entries, Longest Empty, including the icon, can be changed as if the unit
etc.). were an independent location.
•It is important, for visual effect, to have a
status light assigned to each unit.
In some situations, it may even be desirable to
model multi-unit locations as totally separate
locations. Multiple locations should be used
instead of multi-unit locations when: If the number of units is changed, the individual
unit location records are automatically created or
•A path network is defined but each location destroyed accordingly.
must interface with a different node on the
network. Individual units of a multi-unit location can be
•Different units have different processing selected to process an entity according to the
times. Selecting Incoming Entities option in the Rules
•The input for each unit comes from different dialog box. (See the discussion regarding the
sources. Rules dialog box later in this section.)
•The routing is different for each unit. In the output report, scheduled hours for the par-
ent location will be the sum of the scheduled
Defining a Multi-Unit Location hours for the individual units.
To create a multi-unit location, enter a number
greater than one as the number of units for a loca- Please note
tion. A corresponding number of locations will
be copied below the multi-unit location record in Multi-Unit notes:
the Location edit table, each with a numeric
extension designating the unit number of that 1. It is not possible to create a path network to
location. Successive graphics, representing indi- interface with each unit of a multi-unit location.
vidual units will be drawn to the right of the orig- You must define the locations individually and
inal location, but may be moved normally. use multiple locations as discussed above.
The original location record becomes the proto- 2. It is not possible to route an entity to a spe-
type for the unit records. Each unit will have the cific unit of a multi-unit location. For example,
prototype's characteristics unless the individual typing Loc2.3 in the destination field of the Rout-
unit's characteristics are changed. In the table ing edit table is not allowed.
below, each unit of the location has a clock-based
downtime defined because the parent location,
Loc2, was assigned a clock-based downtime.
However, Loc2.1 has an additional entry-based Location Downtimes
downtime and Loc2.2 has an additional usage-
A downtime stops a location or resource from
based downtime. Any other characteristic,
operating. A down resource or location no longer
functions and is not available for use. Downtimes
may represent scheduled interruptions such as
shifts, breaks, or scheduled maintenance. Or, they
108 Chapter 5:
Locations
3. Each selection opens an edit table for First Time The time of the first downtime occur-
specifying the required elements of the rence. If this field is left blank, the first clock
downtime. downtime will occur according to the frequency
field. This time is evaluated after any initializa-
tion logic.
Please note
Priority The priority (0-999) of the downtime
An alternative and more straightforward method occurrence. The default priority is 99, the highest
for defining downtimes due to breaks or shifts is non-preemptive priority.
to use the Shift Editor. The Shift Editor also has Scheduled... Select YES if the downtime is to
be counted as a scheduled downtime. Select NO
ProModel 109
User Guide
if the downtime is to be counted as a non-sched- included in the Frequency and First Occurrence
uled downtime. fields. (See the “Appendix A” on page 587 to see
if the specific statement or function is valid in a
All scheduled downtimes will be deducted from
particular field.)
the total scheduled hours reported in the output
statistics and, therefore, will not be considered in
computing utilization, percent down, and so on.
Logic Enter any logic statements to be pro-
cessed when the downtime occurs. When the
logic has completed, the location becomes avail- Frequency The number of entities to be pro-
able. In the most simple case, the logic is simply cessed between downtime occurrences. This may
a WAIT statement with a time value or expres- be a constant value or a numeric expression and
sion which represents the duration of the down- is evaluated as the simulation progresses.
time. Click on the heading button to open a larger First Occurrence The number of entities to be
edit window. processed before the first downtime. This may be
Disable Select YES to temporarily disable the a value or a numeric expression. If left blank, the
downtime without deleting it from the table. first downtime will be based on the frequency
entered.
The example above shows a simple clock-based
downtime where the location is down for 10 min- Logic Any logic statements to execute when the
utes every 2 hours (120 min). Because this time downtime occurs. Normally, this logic is simply a
should not be included in the total scheduled or time expression representing the length of the
available hours, YES is selected in the “Sched- downtime. Click on the heading button to open a
uled” column. larger edit window.
Disable Select YES to temporarily disable the
Entry Downtime Editor downtime without deleting it from the table.
Entry downtimes are used to model downtimes In the example above, Robot1 will go down
when a location needs to be serviced after pro- every 100 entries, with the first downtime occur-
cessing a certain number of entities. For example, ring after only 50 entries. When the downtime
if a printer needs a new cartridge after printing occurs, it will require a resource (M1) to service
2000 shipping orders, an entity downtime should the machine for some amount of time between
be defined. The downtime occurs after the entity 3.8 and 4.2 minutes. If resource M1 is unavail-
that triggered the downtime leaves the location. able when requested, the robot will remain down
until M1 becomes available.
The Entry Downtime Editor consists of the edit
table shown below. To access the Entry Down-
time editor, select Entry from the menu that Please note
appears after clicking the DT... heading button.
Entry downtimes are only available for single Entry-based downtimes do not accumulate. For
capacity locations. The Downtime Editor con- example, if a downtime cannot occur because the
tains fields for defining downtimes based on the priorities of the entities being processed are at
number of entries processed at a location. Most least 2 levels higher than the priority of the
functions, including distributions, can be
110 Chapter 5:
Locations
downtime, only the first downtime resumes after Logic Any logic statements to be processed
processing the entities. All others are ignored. when the downtime occurs. Typically, this field
contains a time expression representing the
length of the downtime. Click on the heading but-
ton to open a larger edit window.
Usage Downtime Editor Disable Select YES to temporarily disable the
Usage downtimes are used to model downtimes downtime without deleting it from the table.
that occur after a location has been operating for
In this example, Robot2 will experience break-
a certain amount of time, such as if a machine
downs according to a Gamma distribution with
fails due to wear after so many hours of opera-
shape and scale parameters 1.7 and 2.3. Mainte-
tion. Usage downtimes are different from clock
nance resource M1 will be used to service the
downtimes because usage downtimes are based
robot. The repair time is normally distributed
on location operation time, which does not
with a mean of 2.4 minutes and a standard devia-
include blocked time. Clock downtimes are based
tion of .3 minutes.
on total elapsed simulation time (operation time,
blocked time, idle time). Usage downtimes are
available only for single-capacity locations. Please note
The Usage Downtime Editor consists of the edit
Usage-based downtimes do not accumulate. For
table shown below. It contains fields for defining
example, if a downtime cannot occur because the
location downtimes based on the actual time in
priorities of the entities being processed are at
use. Most functions, including distributions can
least 2 levels higher than the priority of the
be included in the Frequency, First Time, and Pri-
downtime, only the first downtime resumes after
ority fields. (See the “Appendix A” on page 587
processing the entities. All others are ignored.
to see if a specific function is valid in a particular
field.)
Priority The priority, between 0 and 999 of the Note that a setup downtime is assumed to occur
downtime. The default priority is 99, which is the only when an entity arrives at a location and is
highest non-preemptive priority. Generally, different from the previous entity to arrive at the
usage downtimes tend to be preemptive and location. Consequently, the word ALL in the
should have priority values greater than 100. prior entity field means all except the same entity
type.
ProModel 111
User Guide
The Setup Downtime Editor consists of the edit statement, the called downtime will execute its
table shown below. It contains fields for defining logic.
location downtimes based on the arrival of a new
entity type.
99. Priorities greater than 99 are used for pre- Assigning Priorities
empting (bumping or displacing) entities or An entity or downtime accesses a location based
downtimes currently occupying a location. on its priority. An entity is assigned a priority for
Priority values are divided into ten levels (0 to accessing a location in the Destination column of
99, 100 to 199, ..., 900 to 999), with values the Routing edit table. A downtime is assigned a
beyond 99 used for preempting entities or down- priority in the appropriate Downtime edit table.
times of a lower priority level. Multiple preemp- The first of the following examples shows a pri-
tive levels make it possible to preempt entities or ority of 100 assigned to EntA as it tries to claim
downtimes that are themselves preemptive. This Loc2. This priority is high enough to preempt any
means that an entity, EntA, with a priority of 99 entity at the location having a priority less than
can be preempted by another entity, EntB, with a 100. It is not high enough, however, to preempt
higher priority level of 199. In turn, another any downtimes at the location.
entity, EntC, with a priority of 299 can preempt
EntB at the same location. Process Table
To preempt an entity currently using a location, a Entity Location Operation (min)
preempting entity or downtime must have a prior- EntA Loc1 USE Res1 FOR N(3,.1)
ity at least ONE level higher than the entity cur-
rently at the location. To preempt a downtime in Routing Table
effect at a location, a preempting entity must
Blk Output Destination Rule Move Logic
have a priority at least TWO levels higher than
1 EntA Loc2, 100 First 1 MOVE FOR 1
the current downtime. Since all overlapping loca-
tion downtimes are processed concurrently This example shows a priority of 200 assigned to
(except setup downtimes), a downtime cannot, in a usage-based downtime at Loc4. This priority
effect, preempt another downtime. can preempt any entity at the location with a pri-
ority less than 200.
A preempted entity will resume processing where
it left off unless the location was in the middle of
a setup downtime. If the entity initiated a setup
downtime before being preempted, it will begin
processing the setup logic from the beginning
when it resumes.
The following table shows the minimum priority
level requirements for an incoming entity or an
upcoming downtime to preempt the current entity
or downtime at the location.
ProModel 113
User Guide
Entity
Time
T2 T3 T4
T1
Example 3 Example 5
This example demonstrates the behavior when an This example demonstrates what happens when a
entity with a priority of 99 is preempted by a setup downtime with a priority of 99 is pre-
downtime with a priority value of 100 or greater. empted by a normal downtime having a priority
of 100 or greater.
Downtime Preempting an Entity
Downtime Preempting Entity in Setup
Entity
Entity setup
DT Time
DT
Time
T2 T3 T4
T1
T1 T2 T3 T4
Remaining entity processing time
resumes upon completion of downtime
Remaining setup time resumes upon
completion of downtime
Example 4
This example illustrates how, regardless of the Example 6
downtime priority values, downtimes will over- This example demonstrates what happens when
lap. The exception is setup downtimes, which Ent 1 setup downtime with a priority of 99 is pre-
preempt downtimes exactly like entities (see empted by Ent 2 having a priority of 100 or
Example 5). greater.
Overlapped/Concurrent Downtimes Entity Preempting Entity in Setup
DT 1 Ent 1 setup Ent 1 setup
DT 2
Overlap Ent 2
Time
Time
T1 T2 T3 T4
T1 T2 T3 T4
Total Downtime Ent 1 setup must start over upon completion
of Ent 2 processing
ProModel 115
User Guide
By Turn Rotates the selection among the avail- which has an “Oldest by Priority” rule for select-
able units. ing incoming entities.
Most Available Capacity Selects the unit hav-
ing the most available capacity. This rule has no
effect with single capacity units.
Fewest Entries Selects an available unit with the
fewest entries.
Random Selects an available unit randomly.
or...
Entities Editor
Entity types are created and edited with the Enti-
ties Editor. The Entities Editor consists of (1) an
edit table to define the name and specifications of
each entity type in the system, and (2) the Entity
Graphics window for selecting one or more icons
ProModel 119
User Guide
to represent each entity. The fields of the edit How to define entities graphically:
table are explained below.
1. Select Entities from the Build menu.
2. Check the New box in the Entity Graphics
window.
3. Select an icon for the entity. (Use the
Icon This is the graphic icon used to represent Graphic Editor to create new icons.)
the entity during the animation. Entity graphics 4. Edit the name and other default entries for
are defined or modified using the Entity Graphics the entity in the Entity edit table.
window. This icon can vary during the simula-
tion. See “Defining Multiple Entity Graphics” on
page 120.
Name The entity name. See “Names” on
page 404 for more information on naming.
Speed This entry is optional and applies to self-
moving entities such as humans. It defines the
speed in feet or meters (depending on the dis-
tance units chosen in the General Information
Dialog box) per minute to be used for any of the
entity's movement along a path network. When
creating a new entity, a default value of 150 fpm
(or 50 mpm for metric systems) is automatically
entered. This is roughly the speed of a human
walking.
Stats The level of statistical detail to collect for
each entity type: None, Basic, or Time Series.
Time series statistics must be selected if you wish
to view a time series plot in the output module.
Notes Any information you wish to enter about
the entity, such as material, supplier name.
Defining Entities
Entity Graphic Dimensions
Entities are typically defined graphically by
clicking on a desired library graphic in the Entity An entity has two sets of dimensions, a logical
Graphics window. Alternatively, you may define (length and width) dimension, and a graphical
entities by simply entering their names and char- (horizontal and vertical) dimension. An entity's
acteristics in the Entity edit table. Entity graphics length and width are used to determine the num-
are optional. ber of entities that can fit on a conveyor, and do
not affect the size of the graphic on the screen
120 Chapter 5:
Entities
during a simulation. They are changed in the changes automatically to maintain proportional-
fields labeled Length and Width in the Entity ity.
Graphics window. If multiple graphics are
defined for an entity, each graphic can have a dif-
ferent length and width. Which side a user
chooses to call the length or width is unimportant Defining Multiple Entity Graph-
as long as the proper side is referenced when
defining a conveyor. If no conveyors are defined
ics
in the model, no specifications of a length and Entity types can be assigned more than one
width are necessary. graphic to represent the entity at various stages of
An entity's horizontal and vertical dimensions are production or traveling in different directions. An
used to determine the size of the graphic on the entity representing a loan application could be
screen. These dimensions can be changed in two assigned three graphics: the first representing the
ways. The scroll bar to the right of the graphic application before a credit check has been
will scale the graphic. In addition, the horizontal received, the second representing the application
and vertical dimensions can be changed by click- after receiving the credit check but before the
ing on the Edit button, then clicking on the loan is approved, and the third representing the
Dimensions... button from the resulting dialog application after the loan is approved. During the
box. The default dimensions are determined simulation, the application’s status could be
when an icon is created to scale in the Graphic shown by adding additional graphics to represent
Editor. If the size is changed using the scroll bar, each state of the loan process using the
the change will be reflected in the dimensions GRAPHIC statement (see “Graphic” on page 492
listed. If you change either the horizontal or verti- for information).
cal dimension from the dialog box, the size of the
icon will change accordingly.
Please note
Process Table
Entity Location Operation (min)
EntA Loc1 Use Res1,99 For N(3,.1)
Routing Table
Blk Output Destination Rule Move Logic
1 EntA Loc2,200 First 1 MOVE FOR
2.5
ProModel 123
User Guide
appropriate heading button will bring up a table The Path Segment edit table is covered in more
for defining nodes, path segments, and location detail later in this section.
node interfaces.
Interfaces The number of location-node inter-
faces in the path network. If an entity will be
picked up or dropped off at a particular location
by a resource, that location must connect to a
node through a location-node interface. Clicking
The following explains each field of the Path on the heading button opens the Interfaces edit
Networks edit table. table where the user may define nodes that con-
nect to processing locations. The Interfaces edit
Graphic For passing or non-passing path net-
table is covered in more detail later in this sec-
works, this button displays the Path Color dialog,
tion.
which allows you to define the color of the path
network. Click on the heading button or double Mapping The number of entries in the Mapping
click in this field to bring up the graphic dialog. edit table. Clicking on the heading button opens
Both dialogs allow you to specify whether or not the Mapping edit table where the user may map
the network will be visible at run time. destinations to particular branches of the net-
work. (The Mapping edit table is covered in more
Name A name that identifies the path network.
detail later in this section.)
For more information about valid names, see
“Names” on page 404. Nodes The number of nodes defined in the
Nodes edit table. Nodes are created automatically
Type Set this field to Non-Passing if you want
when graphically defining path segments. Click
entities and resources to queue behind one
on this heading button to open the Node edit
another on the path network. If a path is Non-
table, which may be used to define nodes manu-
Passing, entities may not pass each other, even if
ally or set Node Limits on one or more nodes.
an entity is traveling at a faster speed than the one
Nodes may also be used to control a resource's
in front of it. Set this field to Passing if you want
behavior through node logic or search routines
entities or resources to pass each other on the
such as work and park searches (see “Resources”
path network.
on page 132). The Nodes edit table is covered in
A "Crane" option is also available, which is more detail later in this section.
described in more detail in the section “Crane
Systems” on page 269. How to create a path network
T/S Set to either Time or Speed and Distance graphically:
as the basis for measuring movement along the
network. See the discussion on Automatic Time 1. Set the default time and distance values
and Distance Calculation later in this section for per grid unit from the Grid dialog box.
more information. 2. Choose Path Networks... from the Build
Paths The number of path segments in the net- menu.
work. Clicking on the heading button opens the 3. Enter the name of the network in the Path
Path Segment edit table where the user may Networks edit table.
define the network's node to node connections.
ProModel 125
User Guide
from node N7 to node N6, or they can have any Time If travel along the network is to be mea-
number of joints, such as the segment from node sured in time rather than in speed and distance,
N2 to node N5. then enter the time required for a resource or
entity to traverse the path segment. This value
may be any numeric expression except for
resource and downtime system functions. When
travel along a path is measured in time, all
resources and entities traveling along the path
take the same amount of time to travel it, regard-
less of their speed. This field's title changes to
“Distance” if the T/S field in the Path Networks
edit table is set to Speed and Distance.
Distance If travel along the network is to be
measured in terms of speed and distance, enter
the length of the segment which determines the
travel time along the path in conjunction with the
speed of the resource or entity.
Path Segment Edit Table
The value entered may be any numeric expres-
This table is used to define the Path Segments sion except for attributes, arrays, and system
that make up a path network. When specifying functions. This expression is evaluated only
travel according to time between nodes, the head- when the simulation begins.
ing “Distance” changes automatically to “Time.”
The distance may be followed by a comma and a
speed factor between .01 and 99. This speed fac-
tor may be used to model any circumstance
affecting the speed of items traveling the path.
For example, a resource may normally travel at
150 fpm, but may slow down as it goes around a
corner to 80% of the original speed, 120 fpm.
This would be entered as 100, .8 for a path seg-
ment 100 feet long which traversed the corner.
This field's title changes to “Time” if the T/S
field in the Path Networks edit table is set to
Time.
The following defines the fields of the Path Seg-
ment edit table. Please note
From The beginning node of the path segment.
Path segment editing notes:
To The ending node of the path segment.
1. If no path segments have been defined for a
BI Set to Uni-directional or Bi-directional network, resources and entities will move from
depending on whether traffic can travel in only node to node in zero time. See “Processing” on
one or either direction.
ProModel 127
User Guide
page 149 for more information about the Routing 4. Enter the time and distance values as
Move dialog box. shown below.
tion Loc2, and so on, as in the example at the Mapping Edit Table
beginning of this section.
If there are multiple paths emanating from one
node to another node, the default path selection
will be based on the shortest distance for speed &
distance networks, and the least number of nodes
for time based networks. These defaults can be
overridden by explicitly mapping some destina-
tion nodes to specific branches that entities and
resources will take when traveling out of a
“from” node.
4. Click on the Destination heading button In this example, we wish to force resources and
and select the desired node(s). entities enroute from Loc1 to Loc4, Loc5, or
Loc6 to take the branch directly connecting node
N2 and node N5 to avoid traffic congestion at the
intersection of the two main branches at node N3.
How to create mappings graphi- Since there are multiple ways to go from N2 to
cally: N5, a decision as to which alternative will be
used has to be made at N2.
1. Click on the Mapping... heading button in In addition, we want resources and entities to fol-
the Path Network edit table. This will open the low the same path in the opposite direction when
Mapping edit table. enroute from Loc4, Loc5, or Loc6 to Loc1. In
2. Click on the from node in the Layout Win- this case, the decision must be made at N5.
dow. This places the selected node in the
From field. Because the combined length of segments con-
necting N2 to N3 and N3 to N5 is shorter than the
3. Click on the to node in the Layout Win- length of the single segment from N2 to N5,
dow. Note that the to node must be directly
resources and entities based on speed and dis-
connected to the from node with a single
branch.
tance will normally take the former path to travel.
130 Chapter 5:
Path Networks
To force them to take the longer path, we must path network extended up to include many other
specify mapping constraints. nodes N8, N9, ..., and locations Loc7, Loc8, ...,
then we would change the Mapping edit table as
follows:
1. Delete line 1 in the Mapping edit table.
2. Make sure that line 3 is there (it is not
optional any more).
3. Include a line which reads: “From: N2, To:
N5, Dest:<BLANK>”.
also be used solely to control a resource or errors. This saves compilation time on large mod-
entity's behavior through node logic or search els.
routines such as work and park searches (see
However, if you edit one or more of your path
“Resources” on page 132).
networks, ProModel will once again check the
modified path networks for errors during compi-
lation. ProModel will consider a path network to
have been modified if its name was at any time,
since the last compile, highlighted in the Path
Network dialog window.
individually for each unit of a resource. The box is checked in the window, selecting a graphic
options are as follows: creates a new resource. Multiple graphics are
defined for a given resource by selecting the
•None: No statistics are gathered.
desired resource and unchecking New. This pro-
•Summary: Average utilization and activity
cedure causes a scrollable row of graphic cells to
times are recorded collectively for all units appear which are automatically and sequentially
of the resource. numbered beginning with 1. Graphics may be
•By Unit: Statistics are gathered for each added or replaced for a given resource by click-
unit individually as well as collectively. ing on the desired cell and selecting a library
Specs... Select this field to open the Resource graphic from the graphics menu.
Specifications dialog box. From here you can
By using the GRAPHIC statement in resource
assign a path network, set the resource speed, and
downtime logic, or in the case of a dynamic
define pickup and deposit times. For more infor-
resource, node logic, any of the multiple graphics
mation on the Specification dialog, see assigned to a resource may be activated during
“Resource Specifications Dialog Box” on simulation. For static resources, you may define a
page 143. second or third graphic to be used automatically
Search... If a path network has been assigned, when the resource is busy or down, respectively.
select this field to access the Work Search and
Resource graphics may be sized using the scroll
Park Search edit tables, used to define optional
bar or edited by clicking the edit button. Edit
work and park searches.
options include rotating, flipping horizontally or
Logic... If a path network has been assigned, vertically, and changing the color of the graphic.
select this field to define any optional logic to be In addition, you can specify the dimensions of the
executed whenever a resource enters or leaves a
particular path node. If you have defined a node
entry and exit logic, the logic field will show the
number of nodes where node entry and exit logic
has been defined.
Pts... If a path network has been assigned, select
this field to define resource points. Resource
points are auxiliary points where multiple
resources may appear graphically when parked or
in use at a multi-capacity node.
Notes... Enter any notes in this field, or click on
the heading button to open a larger Notes window
for entering notes.
resource graphic. For more information, see it may be used at more than one location or to
“Dimension” on page 318. move entities between locations.
changes color to green when in use and red when 7. Supply any optional information about the
down. resource including number of units, down-
times, work and/or park searches, and node
logic in the Resources edit table.
Dynamic Resources
Dynamic resources are resources that move along Please note
an assigned path network and may transport enti-
ties between locations as a forklift would. They Dynamic resources notes:
may also need to process entities at several loca-
tions, such as an operator performing tasks at 1. When defining the resource specifications, the
more than one location. For these reasons, it is default Resource Search for dynamic resources is
usually preferable to model the resource's move- Closest Resource. The default for Entity Search is
ment using a path network. Defined properly, the Closest Entity.
resource will travel along the path network dur- 2. More than one resource can use the same path
ing the simulation run. network.
you did not use multi-unit resources, you would 2. Select the resource for which the down-
need to specify “USE Technician1 OR time is to be defined.
Technician2 OR Technician3,” although this can 3. Click the DTs... button from the Resources
easily be abbreviated by using a macro to repre- edit table.
sent the resource expression. When you define
4. Select the downtime basis: Clock or
three units for a single resource, Res1, you can Usage.
simply state “USE Res1” and one resource unit
will be used based on its availability. 5. Enter the required information in either the
Clock Downtime or Usage Downtime edit
table. Each of these tables is described in the
Multiple Single-Unit Resources following pages.
Multiple single-unit resources are useful when
resources have different specifications, follow
different path networks, or are used at specific
locations. If several resources have the same
Please note
specifications and travel the same path network
but can only do work or interface with specific Unlike location downtimes, multiple resource
locations, they must be defined as multiple sin- downtimes occurring within the same time frame
gle-unit resources. This is because a unit of a are processed sequentially, not concurrently.
multi-unit resource must be able to interface with However, through the use of the DTDelay func-
all locations where it is called to work. tion, concurrent downtimes can be achieved for
resources.
Resource Downtimes
Resource downtimes refer to the times when a
resource is unavailable due to scheduled events
Clock-Based Downtime
like breaks and shift changes, or unscheduled Clock-based downtimes for resources are speci-
events like illness and random failures. For fied through the Clock Downtimes edit table
scheduled events, it is much easier and more shown below. The fields of this table are defined
straightforward to define these downtimes using as follows:
the shift editor (see “Shifts & Breaks” on
page 168). Unscheduled downtimes, based on the
elapsed time of the simulation clock or resource
usage time, are defined in the Resources edit
table by clicking on the downtime heading but-
ton. Frequency The time between downtimes. This
may be a constant time as shown above, a distri-
How to define resource down- bution, or an expression.
times: First Time The time of the first downtime occur-
rence. Leave this field blank if the first occur-
1. Select Resources from the Build menu. rence is to be determined from the frequency
field.
ProModel 139
User Guide
Priority The priority of the downtime (0-999). Disable Select YES to disable a downtime
The default priority is 99, which is the highest without removing it from the table.
non-preemptive priority.
Scheduled... Select YES if the downtime is to Usage-Based Downtime
be counted as a scheduled downtime. Select NO A usage-based downtime is a downtime based on
if the downtime is to be counted as a non-sched- how long a resources has been used, such as how
uled downtime. (All scheduled downtimes are often a forklift needs to be refueled. Usage-based
deducted from the total hours scheduled in the downtimes for resources are specified through
statistical calculations.) the Usage Downtimes edit table shown below.
List A list of the individual units of the resource Actual time in use includes any time that a
to be affected by the downtime. You may list resource is moving with an entity or is being used
individual units of the resource, specify ALL, or by an entity at a location. It also includes any
leave blank to affect all units. time a resource is being used in downtime logic
as a maintenance resource. The fields of this table
•1,2 Units 1 and 2 only are defined as follows:
•1-3,5 Units 1 through 3 and 5 only
•none You may use none to indicate that no
unit will adopt this downtime. This is use-
ful in creating a run-time interface. By
using a macro to represent the number of
Frequency The time between downtimes,
units, the user may select none as an
based on the usage time of a resource. This may
option.
be a time distribution as shown above, or an
•Macro The name of a run-time interface
expression.
macro that allows the user to define the
units to be affected by the downtime. First Time The time of the first downtime occur-
rence. Leave this field blank if the first occur-
Node This field applies only to dynamic
rence is to be determined from the frequency
resources and defines the node to which the
field.
resource will travel to go down. If no node is
entered, the resource stays at the current node. Priority The priority of the downtime (0-999).
The actual downtime will not begin until the The default priority is 99, the highest non-pre-
resource arrives at this node. Traveling to the emptive priority.
downtime node is counted statistically as time
List A list of the individual units of the resource
traveling to park.
to be affected by the downtime. You may list
Logic... Specific logic to be performed when the individual units of the resource, specify ALL, or
downtime begins, typically a WAIT statement. leave blank to affect all units.
Resources may be used to service resources that
•1,2 Units 1 and 2 only
are down if the servicing resource is static, or if
•1-3,5 Units 1 through 3 and 5 only
the servicing resource is dynamic and uses the
same network. (See the “Appendix A” on •none You may use none to indicate that no
page 587 for a list of statements valid in unit will adopt this downtime. This is use-
Resource Downtime logic.) ful in creating a run-time interface. By
using a macro to represent the number of
140 Chapter 5:
Resources
units, the user may select none as an logic (or the subroutines called from these log-
option. ics). Priorities for resource downtimes are
•Macro The name of a run-time interface assigned in the Priority field of the Clock and
macro that allows the user to define the Usage downtime edit tables. The following
units to be affected by the downtime. examples illustrate these points.
Node This field applies only to dynamic
Process Table
resources and defines the node to which the
resource will travel to go down. If no node is Entity Location Operation (min)
entered, the resource stays at the current node. EntA Loc1 Use Res 1,200 For N(3,.1)
The actual downtime does not begin until the
resource arrives at this node. Traveling to the Routing Table
downtime node is counted statistically as time
traveling to park. Blk Output Destination Rule Move Logic
1 EntA Loc2 First 1 MOVE FOR 5
Logic... Specific logic to be performed when the
downtime begins, typically a WAIT statement.
Resources may be used to service resources that
are down if the servicing resource is static, or if
the servicing resource is dynamic and uses the
same network. (For a list of statements valid in When an entity using a resource is preempted by
Resource downtime logic, see the “Appendix A” either a downtime or another entity, any process-
on page 587). ing time for the preempted entity due to a WAIT
or USE statement is interrupted until the pre-
Disable Select YES to disable a downtime
empting entity or downtime releases the resource.
without removing it from the table.
If an entity is using other resources in addition to
the one preempted, the other resources remain in
Please note possession of the entity.
In the case of a resource downtime preempting
Usage-based downtimes do not accumulate. For
another resource downtime, any remaining time
example, if a downtime is preempted by an entity
delay, as well as any other downtime logic
and another downtime is scheduled to occur
remaining to be processed by the preempted
while processing the entity, only the first down-
downtime, is immediately discontinued without
time resumes after processing the entity. All oth-
resuming and the preempting downtime takes
ers are ignored.
over.
Please note
Resource Priorities and Pre-
Resource priorities and preemption notes:
emption
1. If a resource is transporting an entity, it can-
Priorities for resource requests may be assigned not be preempted by another entity or by a down-
through a GET, JOINTLY GET, or USE state- time until it drops off the current entity at the
ment in operation logic, downtime logic, or move destination location. Therefore, the resource will
ProModel 141
User Guide
deliver the current entity and then immediately the resource when the requesting entity or down-
come under control of the preempting entity or time attempts to capture it. Downtimes below
downtime. refer to clock and usage-based downtimes only.
2. If a resource is moving but does not possess Priority values are divided into ten levels (0 to
an entity, the resource can be preempted by a 99, 100 to 199,..., 900-999), with values beyond
downtime or entity. The resource will stop at the 99 used for preempting entities or downtimes of a
next node in the path network and travel to the lower priority level.
downtime node after which the resource will go
down. To Preempt To Preempt
The Current The Current
Owner Downtime
Requesting
1 priority level 2 priority levels
Resource Shift Downtime Priori- Entity or
Another higher higher
ties Resource or
Location’s
In ProModel, you define the shift downtime pri- Downtime
orities in the Shift Assignments module. The pri-
ority for a resource to start a shift downtime and Requesting 1 priority level 1 priority level
the priority required for some other task to pre- Downtime higher higher
empt the downtime must be set in the Shift
Assignments module.
•The upper-left quadrant shows that if an
Although a resource may be in use during a shift entity tries to seize a resource currently
downtime, the scheduled hours in the statistics owned by another entity (or another
will still reflect the hours scheduled to be on resource’s or a location’s downtime), the
shift. For example, a resource goes off shift after entity must have a priority at least one
eight hours. Due to an emergency, the resource is level higher than the current entity to pre-
called back two hours later to work on a machine empt the resource.
that has gone down. The statistics will still indi- •The lower-left quadrant shows that a down-
cate that the scheduled hours for the resource are time must have a priority at least one level
eight when the resource actually spent more than higher than the entity currently owning a
eight hours in use, because the resource was resource if the resource is to be preempted.
scheduled to work only eight hours. The
•The upper-right quadrant shows that an
resource's total usage time, however, will still
entity must have a priority at least 2 levels
indicate the additional time spent working on the
higher than the current downtime priority
downed machine.
to preempt a downed resource.
•The lower-right quadrant shows that a pre-
Resource Preemption Matrix empting downtime must have a priority at
least one level higher than the current
The following Preemption Matrix shows the pos- downtime to preempt it.
sibilities of entities and downtimes preempting
each other in the use of a resource. “Current” The following graphics demonstrate basic pre-
refers to the entity or downtime in possession of emption concepts.
142 Chapter 5:
Resources
Preemptive DT vs DT Total
Non-preemptive DT vs. Entity
Downtime:
T1 to T3
DT 1 Entity
Discontinue
Scheduled DT
DT 2
Actual
Time
Time
T1 T2 T3 T4
T1 T2 T3 T4
Non-preemptive DT vs. DT
Preemptive DT vs. Entity
DT 1
Entity
Scheduled DT 2
Actual DT 2
DT
Time
Time
T1 T2 T3 T4
T1 T2 T3 T4
DT 2 priority NOT at least 1 level higher than
DT 1 priority
DT priority at least 1 level higher than
entity priority
ProModel 143
User Guide
Ent 2
Time
T1 T2 T3 T4
Please note
processing location. This helps to keep the pro- Node Logic Editor
cessing locations busy at all times.
The Node Logic edit table is used to define spe-
cial logic for a dynamic resource to perform upon
Park Search Edit Table
entering or exiting a node. Node logic may be
Park searches are defined for dynamic resources defined for any dynamic resource at any node.
through the Park Search edit table shown next. If Typical uses of node logic are:
several resources share the same path network,
•Changing a resource graphic using the
each resource must have its own park search
defined (i.e., resources cannot share park GRAPHIC statement
searches). •Controlling traffic using WAIT UNTIL
statements
•Gathering special statistics on resource
movement
Node Logic Example zone. The node logic for node N5 is identical to
that for node N2.
Please note
Suppose that for safety considerations we desire This example follows the rule that allows the
to keep track of the number of times both forklifts LAST() function to be used only in Node Entry
simultaneously enter a particular zone of the net- Logic, while the NEXT() function may be used
work consisting of branches N2 to N3, N3 to N4, only in Node Exit Logic. (See “Resource-Specific
and N3 to N5. (It is thought that this zone may be System Functions” on page 435).
particularly susceptible to accidents due to heavy
traffic.) We could accomplish this using node
logic at the entry and exit points of the zone.
Resource Points
The only way to enter or exit the zone is through
nodes N2 and N5. To track the number of fork- For a static resource, resource points are the lay-
lifts currently in the zone, we increment and dec- out coordinates of the resource graphics. For
rement a variable called Current. Each time a dynamic resources, resource points are auxiliary
forklift leaves node N2 or N5 en-route to node points where multiple resources may appear
N3 we increment variable Current. Each time a graphically when in use or parked at a multi-
forklift enters node N2 or N5 enroute from N3 we capacity node. When a resource arrives at a node,
decrement variable Current. Finally, each time it will appear on that node unless a resource point
we increment the variable Current, we check to is defined for that resource at that node. The
see if Current > 1. If so, we increment a second resource will appear on the resource point when it
variable called Total to record an occurrence of arrives to park or perform a task at a particular
both forklifts in the zone at the same time. node. Resource points prevent resources from
appearing on top of each other. In the case of
The following windows show the entry and exit
dynamic resources, resource points are defined in
logic for node N2, representing one entry to the
terms of an offset from the node to which they are
connected. Resource points are defined in terms
of an offset from the upper left corner of the lay-
out for static resources.
The following Resource Points edit table shows
that node N8 has two resource points attached to
148 Chapter 5:
Resources
it. The horizontal offset is 0 units for each point. Please note
The vertical offset is 13 units both up and down
from the node position. (For resource points posi- Resource points are automatically added to the
tive distances are up and to the right.) home node for each resource graphic placed on
the layout.
Processing is defined in the Processing Editor, Before you begin to specify the processing logic,
which is accessed through the Build menu. This define all locations and entities to be referenced
section first describes how to create simple pro- in the processing. This is done through the Loca-
cesses, then explains each feature of the Process- tion and Entity Editors. If you reference a loca-
ing Editor. tion or an entity that has not yet been defined in a
location or entity field, you will be prompted to
add that location or entity to the respective loca-
tion or entity list. However, no graphic gets auto-
matically assigned to the location or entity.
The easiest way to define the processing logic is
to define the routing or flow sequence using the
tools in the Processing Tools window, which
appears in the lower left corner of the Processing
Editor. These tools have been designed to allow
you to easily and rapidly define the flow of enti-
ties through the system. It is also a good idea to
define the routing rule for each routing as it is
created. Once you have defined the from-to rela-
tionships between locations for each entity, fill in
the details of the operation and move logic for
each location. This is typically done by typing the
logic in the operation or move logic column man-
ually or by using the Logic Builder, documented
How to create and edit process at the end of this section.
routings: Defining processes graphically in ProModel
requires interaction with all four process editing
• Select Processing from the Build menu. windows.
•Process Edit Table
or... •Routing Edit Table
•Tools Window
• Right click on the existing process routing •Layout Window
and select Edit.
150 Chapter 5:
Processing
Before discussing the procedures for using these in the edit field at the top of the list—this entity
windows interactively, let us look briefly at a will come into the location, it is not the entity
process flowchart of a simple model. that results from the process.
2. Select the desired editing mode: New Pro-
Example Model cess or Add Routing.
3. Click on the first location where the entity
Two entity types, EntA and EntB, arrive at Loca-
will process. A rubber-banding routing line
tions 1A and 1B, respectively, according to some
appears. If you select Add Routing, the rub-
specified arrival logic. After a short preparation ber-banding routing arrow automatically
time, both entities are routed to Location 2 where appears from the current location.
1 EntB is joined to 1 EntA. At this point the
4. To choose a different entity as the output
resulting entity, EntC, is sent to Location 3 for
entity, select the desired output entity in the
consolidation. Twelve EntC's are accumulated at
tools window.
Location 3 and processed together for 3.0 min-
utes. Then they exit the system. 5. Click the destination location.
EntB @ Loc1B
EntB
EntB 1.0 min 1 Exit
Arrival Processing
Logic Logic
7. From the final processing location route an shown in their default arrangement, you may
entity to Exit by clicking on the “Route to Exit” arrange them as desired.
button in the Tools window.
8. Once all routings have been defined,
enter the processing logic in the operation
field of the Process edit table.
where after earlier processes. When searching for can also click on an entity name and select OK to
the next process, ProModel always searches for- place it in the table.
ward in the process list first, and then starts from
the beginning of the list.
Heading
Buttons
nations for the entity. Because there is no routing, operations performed on other entities at the
after the entity finishes that process, ProModel same location.
will search ahead in the Process edit table for a
process for the entity specific to the actual loca-
tion. The keyword ALL in the Location field is
particularly useful when entities route to different
locations having the same operations and then
route to a common destination. In most other
instances, it is recommended that a subroutine or
macro be used to define identical operations.
Operation Operation logic is optional, but typ-
ically contains at least a WAIT statement for the
amount of time the entity should spend at the
location. If the entity needs a resource to process
or to be combined in some way with other enti- For more information see “Operation Logic” on
ties, that would be specified here as well. In fact, page 299.
anything that needs to happen to the entity at the
location should be specified here, except for any Using the “ALL” Entity Type
information specified in the entity's routing.
The reserved word ALL may be entered as the
Statements can be typed directly into the opera- processing entity if all entity types at that location
tion field, or inside a larger logic window after have the same operation. ALL may also be used
double clicking in the field or clicking on the in the output field of the routing if all entity types
Operation button. Alternatively, the Logic at that location have the same routing. If a pro-
Builder can help build logic and is accessed by cess record for a location using ALL as the entity
clicking the right mouse button inside the opera- follows several process records for the same loca-
tion field or logic window. All of the statements, tion using specific entity names, and each process
functions, and distributions available in the oper- record has a defined routing, the ALL process is
ation field are discussed in detail, including interpreted to mean ALL of the rest of the enti-
examples, in “Statements and Functions” on ties. The following examples show how ALL
page 439. may be used in different situations.
Each entity performs the operation steps defined
1.All entities have a common operation
for it at a particular location, independent of other
and a common routing.
To define a common operation and routing for all
entity types at a location, simply enter ALL for
both the process entity name and the output entity
name.
In the following example three entity types,
EntA, EntB, and EntC, are all sent to a packing
station for packaging. The packing time is .5 min-
utes and the entities move on to a shipping sta-
154 Chapter 5:
Processing
Process Table table to the Process edit table (i.e., all routings
that appear in the routing edit table apply to the
Entity Location Operation (min)
currently highlighted process), though the two
EntA Loc1 WAIT .4
tables appear side by side. Not all process
EntB Loc1 WAIT .5
records need to have a corresponding routing. If
EntC Loc1 WAIT .6
the routing is omitted, ProModel will search for-
ALL Loc1
ward in the Process edit table for another process
for that entity at that location. So an entity's com-
Routing Table
plete processing at a location could be broken
Blk Output Destination Rule Move Logic into several records. In that case, only the last
process would have a routing. If no routing is
defined for at least one of the process records for
a given entity and location, an error occurs.
1 ALL Packaging FIRST 1 MOVE FOR 1
Another situation that does not require routing is
Alternatively, you can assign an attribute to each when an entity changes its name at a location
entity which represents the processing time or after a RENAME AS or SPLIT AS statement.
some other entity-specific parameter. Then use Any time during processing logic that an entity
the attribute as the processing time, or call a sub- changes its name, ProModel searches forward in
routine and pass the attribute as a parameter for the Processing edit table until it finds a process
entity-specific processing. for the new name at the same location. For exam-
ple, if the identity of an entity is changed through
In the following example, the test time for each
a RENAME AS statement in the operation logic,
entity type is different. This time is stored in an
then no routing block will apply to the old entity.
attribute, Oper_Time. The attribute is then listed
Instead, the newly named entity will be routed by
on a line in the operation logic (with a WAIT
the process for the new name. (See “Rename” on
statement) to signify an operation time. Once the
test time for each entity is completed, the entities page 541).
are all routed to a packaging location.
Process Table
Entity Location Operation (min)
ALL Test WAIT Oper_Time
The fields of the Routing edit table are as fol-
Routing Table lows:
Blk Output Destination Rule Move Logic Blk This field contains the block number for the
1 ALL Packaging FIRST 1 MOVE FOR 1 current routing block. A routing block consists of
one or more alternative routings from which one
is selected based on the block rule (e.g., a list of
Routing Edit Table routings where one is selected based on the most
The Routing edit table defines the outputs for available capacity). Since all of the routings
each process record defined in the Process edit using the same rule are part of the same block,
table. The Routing edit table is really just a sub- only the first line of each routing block contains a
156 Chapter 5:
Processing
route block number. If no routing blocks have sequentially while split entities get processed
been referenced explicitly in the operation logic concurrently.
(for example “ROUTE n”), all routing blocks
If the reserved word ALL was used as the incom-
will be executed in sequence upon completion of
ing entity type for this process, it may also be
the operation logic (See “Route” on page 552).
entered here. Otherwise, every entity entering the
Multiple routing blocks are processed sequen-
location will change to the specified output
tially with the next block being processed when
entity. (See the discussion on using ALL in the
all of the entities in the previous block have
Entities section.)
begun executing any move logic defined. To
change the routing block number or add a new
routing block, see the discussion on the Routing
Rule dialog box later in this section.
The following example shows a process record
with two separate routing blocks. Note that both
routings will execute upon completion of the
operation time because no ROUTE statement has
been specified. One EntB gets routed to Loc2 and
one EntC gets routed to Loc3.
Process Table
Entity Location Operation (min) The entity list box defaults to the current field
EntA Loc1 WAIT N(5,.3) entity, the last entity selected, or the first entity
defined.
Routing Table
To better anticipate the entity entry likely to be
Blk Output Destination Rule Move Logic made, the entity highlighted in the list box
1 EntB Loc2 FIRST 1 MOVE FOR 1 defaults first to the current field entity, then to the
2 EntC Loc3 FIRST 1 MOVE FOR 2 last entity selected, and finally to the first entity
Output If a routing is defined, the name of the defined.
entity resulting from the operation must be The example below shows how an incoming
entered here. This name may be the same as the entity, EntA, changes identity and becomes an
entity that entered, or it may be another name, or EntB upon exiting location Loc1. This is done by
even several names, each on a different line. simply specifying the new entity name as the out-
Using another name works much like a put entity.
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 in conjunction
with a RENAME-AS statement. The difference is
that multiple routing blocks are processed
ProModel 157
User Guide
box. The fields of this dialog box are defined in AS statement, dividing the cost statistics between
the following example. the split members and resetting all time statistics
to zero.
Please note
Note also that no more than one of the other rules more information on “Routing Move Logic” on
can appear in a single block (e.g., you cannot mix page 159.
a First Available rule and a Most Available rule
in the same block).
Processing Tools
For exact syntax and examples of each routing
rule, see “Routing Rules” on page 415. The Tools window provides graphical aids that
may be used to define processing records and
routing records. It is also used to define the
Routing Move Logic graphical paths that entities follow when moving
The Move Logic window allows you to define without a path network between locations.
the method of movement as well as any other
The Tools window, which appears along with the
logic to be executed prior to or after the move
other Processing windows, can define processing
actually takes place.
in one of two modes, New Process or Add Rout-
Once the route condition or rule has been satis- ing. Each is explained next. Additionally, Find
fied for allowing an entity to route to a particular Process Mode is available. To select a mode,
location, the move logic is immediately executed. click on the desired button. Each of the modes is
The entity does not actually leave the current described on the next page.
location until a move related statement (MOVE
FOR, MOVE ON, MOVE WITH) is executed or
the move logic is completed, whichever happens
first. This allows the entity to get one or more Editing Mode
resources, wait additional time, or wait until a
condition is satisfied before actually leaving the
location.
Any statements encountered in the move logic Current Entity
after the move related statement are executed
after the move is complete but before the entity
actually enters the next location. This is often
useful for freeing multiple resources that may
have been used to transport the entity.
When defining exit logic, such as incrementing a Routing Options
variable used to track the number of exits from a
location, it can generally go before the move
statement unless a MOVE WITH statement is
used and the entity must capture the resource
before making the move. In this situation, a GET
statement should be specified first to get the In addition to option buttons (New Process, Add
resource. Then the exit logic may be specified Routing, or Find Process) for the process editing
followed by the MOVE WITH statement. mode, the Tools window contains a list of
defined entities as well as the reserved word ALL
Any delay occurring as a result of move logic is to represent all entity types. The entity in Pro-
reported as part of the entity’s move time. For cessing Tools applies to either the process or
160 Chapter 5:
Processing
New Process Mode 1. Click inside the desired record in the Pro-
cess or Routing edit table.
New Process Mode is used to create a new pro-
cess record. A new process is automatically cre- 2. Select Delete from the Edit menu.
ated for the selected entity each time you click on
a location.
This mode should be used if you want to create a Editing a Routing Path
process for a particular entity at a location. You
may even create multiple processes for the same Once a routing path has been defined you may
entity and location if you want to re-route an edit the path (regardless of the current mode) by
entity through the same location more than once clicking anywhere on the routing path. This
for additional operations. Once a new process is selects the path and allows you to change the
created, the mode automatically changes to Add source or destination of the routing by dragging
Routing mode to enable a routing to be defined the beginning or end of the path to a new loca-
for the process. tion. It also allows you to move any intermediate
joint in the path to change the shape. You may
also click on a path with the right mouse button to
How to define a new process create or delete a joint.
using the Tools window:
If a process is already defined and a location is
moved while in the Location module, the con-
1. Depress the New Process button.
necting leg of any routing lines will also move.
2. Select the entity for which a new process is
to be defined from the Tools window.
Add Routing Mode
3. Click on the location where the entity will
be processed in the layout window. A new Add Routing Mode is used to create multiple
process record is created in the edit table. routings for a single process record. Suppose an
The mode is automatically switched to Add entity, EntA, can travel to one of three locations
Routing mode and a rubber banding line depending on which is available first. Selecting
appears that connects the mouse pointer to the New Process mode and then defining the
the location. entity process causes the entity to travel from one
4. If a different entity is to be output from the location to another location. Selecting Add Rout-
process, select it from the Tools window. ing mode afterwards allows you to define a dif-
ferent destination location within the same
5. Click on the destination location. A new
routing record appears in the edit table and routing block.
the mode switches back to New Process
mode. How to add additional routings to
an existing routing block:
line (you may use the Find Process button to 5. Click the Route to Exit button in the tools
locate the process record). dialog.
2. If you wish to insert the routing record
rather than simply append the record to the
current routing list, highlight the routing
record where the routing is to be inserted and Find Process Mode
choose Insert from the Edit menu. To find a previously created process for an entity
3. Select the Add Routing button from the type at a certain location, use Find Process mode.
Tools window. A rubber-banding line is cre-
ated.
How to find a process for an entity
4. Select the entity in the Tools window to be at a location:
output in this routing.
5. Click on the desired destination location. 1. Click on the Find Process button.
This creates a new routing record in the Rout-
ing edit table. 2. Click on the desired entity type.
3. Click on the desired location. The first pro-
cess found for that entity type at the location
will be highlighted in the Edit window.
Please note
To fill a location to capacity at every arrival time, Disable Set this field to YES or NO if you want
use the keyword INFINITE, abbreviated INF. to temporarily disable this arrival without delet-
ing it. This is useful when debugging a model and
If you have previously created an arrival cycle
for verification purposes where you want to fol-
and want to use it for this arrival, enter the name
low a single entity through the system.
of the arrival cycle followed optionally by a
quantity. You may also click on the Qty each...
heading button to select from the list of defined Arrivals edit table notes:
cycles. See the section on Arrival Cycles for
more information about defining cycles. 1. When several different entity types are sched-
First Time This option allows you to dynamically uled to arrive at a location simultaneously, they
vary the time of the first arrival to your model. will arrive in the order they are listed in the
You may define scheduled arrivals to occur at Arrivals table. To have them alternate their
given intervals (e.g., appointments) or use an arrivals, enter a 1 in the “Qty each” field and the
arrival cycle to define random arrivals over a total entry quantity in the “Occurrences” field.
period of time (this value is the start time for the 2. Arrivals defined through an external arrival
first cycle). ProModel evaluates this field only at file will be appended to the arrival list. There-
the beginning of the simulation. fore, if an external arrival file is the only source
Occurrences The number of times per simula- of arrivals, the Arrival edit table may be left
tion run that ProModel will generate arrivals (1 - blank. See the section on External Files for more
999999). Entering the reserved word INFINITE information on arrival files.
(abbreviated INF) will cause ProModel to send 3. If the capacity of the location is insufficient to
the specified number of arrivals at every arrival hold all the arriving entities, the excess entities
time without limit. This value may be any expres- are destroyed. Therefore, the arrival location
sion and is evaluated only at the beginning of the should have a capacity at least equal to the “Qty
simulation. If an arrival cycle is used, this is the each” in the Arrivals edit table. If more entities
number of times to repeat the cycle. are scheduled into the system than are exiting,
Frequency The inter-arrival time or time the arrival location may not have enough capac-
between arrivals. Any valid expression may be ity to handle all the arrivals.
entered here except for attributes and non-general
system functions. If an arrival cycle was entered
for the arrival quantity, this is the time between
the start of each cycle. This field is evaluated Defining Arrivals
throughout the simulation run and will change if
Arrivals may be defined graphically by using the
the result of the expression changes.
tools in the Tools window, or by manually enter-
Logic This field defines any optional arrival ing the arrival information directly in the Arrivals
logic, consisting of one or more general state- edit table.
ments, to be executed by each entity upon its
arrival (e.g., assigning attribute values to entities How to define arrivals graphically:
as they arrive). Double-click inside this field or
click the logic button at the top of the column to 1. Select Arrivals from the Build menu.
define logic for an arrival.
ProModel 165
User Guide
2. Select the desired entity from the Tools win- Independent Arrivals
dow.
An independent arrival is any arrival assigned to
occur at a specific time or at a fixed interval.
Independent arrivals include such things as
appointments, meeting times, or pickup and
delivery times. When defining independent arriv-
als, remember that simulation can model only
predefined appointment schedules. This means
that dynamically scheduled appointments (e.g.,
rescheduling return visits to fit into available
slots) must take place where you define the
appointment schedule.
3. Click in the layout window at the location
where the entity is to arrive. (You may need When defining independent arrivals, you may:
to scroll through the layout to bring the
•Define them by elapsed time, day and time,
desired location into view.)
or calendar date.
4. Enter the specifications for the arrival •Assign them to occur at fixed intervals (e.g.,
record (e.g., arrival quantity and frequency). interviews scheduled every fifteen min-
utes).
1. Select Arrivals from the Build menu. When you define independent arrivals as inter-
vals, the next arrival time is independent of the
2. Enter the Entity, Location, and Quantity
previous arrival. For example, applicants will
through either the keyboard or by clicking on
the respective heading buttons and choos- arrive for appointments based on the clock
ing the proper information. time—not the time elapsed since the last arrival.
3. Enter the First Time, Occurrences, and Fre-
quency using either the keyboard or the
statement builder (accessed by right clicking
•Allow a positive or negative offset to adjust
inside the desired field).
the scheduled time of arrival (e.g., appli-
4. Enter the time of the first arrival by clicking cants must arrive at least ten minutes prior
on the First Time button. (See “Independent to their interviews).
Arrivals” on page 165 for more information on
•Define a distribution to allow variability
the First Time dialog.)
from the adjusted arrival time.
5. Click on the Logic or Notes heading button •Allow the possibility that an entity will not
to enter desired logic or notes.
arrive at all.
•Define specific appointment types for only
certain resources or resource types.
166 Chapter 5:
Arrivals
How to define independent arriv- and time or calendar date and click the Edit
als: Arrival Time button.
beta distributions provide the most realistic The samples have different processing times
variation. depending on the test performed. To differentiate
between the different types of samples, we assign
Variation an entity attribute called Sample_Type to the
samples. We define a discrete, non-cumulative
Arrival Appointment user distribution called Test1 with the following
Time Time information:
9:50 AM 10:00 AM The arrivals logic for the entity called Test1 is as
follows:
8. In the Occurrences field of the arrivals edit
table, enter the number of times to repeat
this appointment definition. (Enter 1 if it will
occur only once.)
Arrival Logic
Arrival Logic allows you to perform certain logic
as an entity enters the system and is used prima-
rily for assigning initial entity attribute values.
Suppose you process three different types of sam-
ples at an inspection station and each sample
takes either 8, 10, or 12 minutes to test. Fifty per-
cent of the samples take 8 minutes to test, 35%
take 10 minutes, and 15% take 12 minutes.
168 Chapter 5:
Shifts & Breaks
• Select a block and choose the Delete Customizing Shift and Break
option from the Edit menu. Colors
The colors that represent shifts and breaks can be
or... customized.
How to assign locations and also selects or removes it. Click OK when fin-
ished.
resources to shifts:
File Open dialog and select the shift files you resource or location back on line. You can
want to use in the model. also use macros to specify priorities.
Please note
You may want to use the Logic Builder to help
you enter the logic. Just click on the Build button
in the logic window. If the off-shift and break nodes are not specified
in the Resource Specs dialog, the resource will
Pre-Off Shift or Pre-Break Logic Executed stay at the current node. If no resources or loca-
whenever the location or resource is scheduled to tions are assigned to a shift, the shift is ignored.
go off shift or on break. This occurs before the
location or resource is checked for availability, so
it is executed regardless of availability. This logic
may be used to check certain conditions before Functions and Statements
actually taking the resource or location off line.
The logic is executed for each resource and loca- ProModel uses several functions and statements
tion listed as members for this shift assignment specifically for shift and break logic: SKIP, PRI-
record. This allows some members to be taken ORITY, DTLEFT(), FORLOCATION(), and
off line while others may be forced to wait. (Pre- FORRESOURCE(). Following is a brief descrip-
off shift and pre-break logic may be referred to in tion of each. For more details, see “Statements
this manual as pre-logic when speaking of either and Functions” on page 439.
one.) SKIP If used in pre-logic, it causes the off-shift
Off Shift & Break Logic Executed at the instant or break time (including any off-shift or break
the location or resource actually goes off line. logic) to be skipped so a location or resource
never goes off line. If used in the off-shift or
break logic, it causes the off-line time defined in
ProModel 175
User Guide
the shift editor to be skipped. This allows you to Pre-off shift logic
specify a WAIT statement for the off-line time
and SKIP the off-line time defined in the shift IF FORRESOURCE() THEN
editor.
BEGIN
PRIORITY This statement provides an alternative
IF RESOURCE() = Loan_Officer THEN
way to specify off-shift or break priorities. It also
allows the priority to be changed after some time BEGIN
being off-shift or on break. If the priority is WAIT UNTIL Applications = 0
changed to a value lower than the current value,
END
the system will check to see if any preemption
may occur at that time. This statement is not END
allowed in off-shift or break pre-start logic.
DTLEFT() This function returns the remaining
off-shift time based on when the location or In addition to these functions, DTDELAY() may
resource is scheduled to go back on shift as also be called at the beginning of the off-shift or
defined in the shift file. It may be used in off-shift break logic to determine how much time has
and break logic to adjust the actual time the loca- elapsed between the time the shift downtime was
tion or resource is off-line. scheduled to start and when it actually started.
The length of the shift downtime defined in the
FORLOCATION() This function returns TRUE if
shift file would be the sum of DTDELAY() and
the member for which the shift or break logic
DTLEFT().
being executed is a location. This may be fol-
lowed by a test using the LOCATION() function
to determine the precise location. Preemptions to Off-Shift or Break
Logic
FORRESOURCE() This function returns TRUE if
the member for which the shift or break logic If off-shift or break logic is defined using WAIT
being executed is a resource. The RESOURCE() or USE statements and happens to get preempted,
function may then be used to determine the pre- the logic will resume one statement after the
cise resource if multiple resources are listed as WAIT or USE statement where it was preempted.
members.
RESOURCE() This returns the name-index num- Shift Downtime Principles
ber of the resource currently processing the off-
shift or break logic.
Locations Shift Downtime
To illustrate how FORLOCATION() and FOR- Principles
RESOURCE() might be used, consider the fol-
lowing example: Suppose you have locations and It is important to understand that when a location
resources as members in a shift file assignment or resource goes off shift, it is essentially down.
and you want to wait until variable Applications We call this type of downtime a shift downtime
is equal to zero before allowing a particular and it is treated slightly differently from other
resource called Loan_Officer to go off shift. You downtimes. Breaks, which are also part of the
would enter the following pre-off shift logic: shift schedule, are treated exactly like clock-
based downtimes. These downtimes are dis-
176 Chapter 5:
Shifts & Breaks
Entity
Example 2
T1 T2 T3 T4
In this example an entity with priority of 200 or
Although the downtime is scheduled to last from greater preempts an off-shift location. The loca-
time T2 to T4, the actual downtime does not tion becomes available to process the entity.
begin until time T3. This is what happens for
both locations and resources currently busy when
the shift downtime is scheduled to occur.
To preempt a location in which an entity is cur-
rently processing, set the priority for going off
shift to a number one level higher than the
entity’s priority.
ProModel 177
User Guide
Once processing is complete, the location returns tion remains off-shift for the total duration of the
to its off-shift status. shift downtime.
Shift DT
Shift DT
DT
Entity
Time
Time
T1 T2 T3 T4
T1 T2 T3 T4
In order for an entity to preempt any location The example above could represent the situation
downtime (shift or otherwise), it must have a pri- where a recurring downtime, such as a lunch or
ority level that is at least 2 levels higher than the dinner break, has been defined for a single loca-
downtime's priority. In this example the location tion that is scheduled to be available for a two-
shift downtime has a priority level of 99 so the shift period. It would be simpler to specify a sin-
entity must have a priority level of 200 or greater gle downtime for lunch and dinner that occurs
to preempt the shift. once every 8 hours continuously than to define
separate downtimes for lunch and dinner. In this
Overlapping Downtimes case the preempting downtime would represent a
meal break occurring while the location was off-
If a preemptive clock downtime occurs during a
shift.
shift downtime, the downtimes simply overlap.
Example 1
Suppose a resource, repairman, is off-shift. An
important machine goes down unexpectedly.
Because this machine is a bottleneck in the opera-
178 Chapter 5:
Shifts & Breaks
tion, it is vital to repair the machine as quickly as it would have been had the original shift down-
possible. The repairman is called in and takes 30 time been completed.
minutes to fix the machine. The logic for the
downtime to call him back is “USE Repairman,
Shift
600 FOR 30 min.” This will preempt the shift
downtime and use the repairman to repair the Discontinued
machine even though the repairman is off-shift.
Once the repairman has repaired the machine, he DT
returns to his shift downtime until he is scheduled
to go back on shift. The repairman's shift down- Time
time will end at the originally scheduled time
regardless of the fact it was preempted by a repair
activity. T1 T2 T3 T4
Example 2
This example shows the effect of a preemptive
downtime occurring for a resource already off-
shift due to a shift downtime. Since resource
downtimes are not overlapping, as in the case of
location downtimes, the shift downtime in
progress is discontinued and the preemptive
downtime takes control of the resource because it
has a priority greater than or equal to five-hun-
dred (remember that a downtime priority needs to
be only one level higher than another downtime
priority to preempt it). The effect in this example
is that the total downtime is actually shorter than
ProModel 179
User Guide
Initialization Logic
Initialization logic allows you to initialize arrays,
variables, and other elements at the beginning of
a simulation run as shown below:
Other common uses of termination logic include:
•Displaying messages
•Resetting read/write files
See the following page for a discussion on the
placement of initialization and termination logic
within the sequence of run-time events.
Please note
you select Run from the Simulation menu the fol- into the simulation module. Thus, any variable
lowing things occur in the order listed: figuring into a location's capacity and initialized
in the initialization logic will be initialized too
1. Variables are initialized to the values speci-
late to affect the location's capacity.
fied in the Variables Editor.
2. Macros with a run-time interface are set to Variables which do not figure into a location's
their user-specified value. capacity may be initialized in the Initialization
3. The model is loaded into the simulation Logic without any problem. A variable initialized
module. As the model is loaded, any numeric in the initialization logic could be used as the
expressions used to define such things as “First Time” for an arrival or downtime occur-
location capacities or number of resource rence. This is true because arrivals and downtime
units are evaluated and assigned a numeric occurrences are simulation events, and all initial-
value. ization logic occurs before the first simulation
4. Initialization logic is performed. event.
5. Simulation begins. Initial arrivals and down-
times are scheduled and simulation pro- Graphic Library File
cesses begin.
6. Simulation ends. ProModel allows you to create and store as many
7. Termination logic is performed. graphics libraries as desired. However, only one
8. Statistics are compiled. graphic library may be used for each model. To
copy a graphic from one graphic library to
Logic elements that figure into a model's struc- another model's graphic library, see “Copying a
ture are evaluated only when the model is loaded Graphic from One Library to Another” on
into the simulation module. Those logic elements page 316.
are:
•Simulation warm-up hours How to select the desired graph-
•Simulation run hours ics library:
•Node capacity
•Length of path segments 1. Select Graphic Library File from the Gen-
•Resource units eral Information dialog box.
•Location capacity
•Time and quantity cycle tables
•Queue length
•Conveyor length
•Conveyor speed
For a complete list of when each field is evalu-
ated, see the “Appendix A” on page 587.
Any variables used in an expression that change
any of these logic elements should be initialized
in the Variables Editor or run-time interface and
not in the initialization logic. The model structure 2. Enter the name of the desired graphics
cannot change after the model has been loaded library.
182 Chapter 5:
General Information
3. Select OK.
Please note
Locations