0% found this document useful (0 votes)
31 views59 pages

Promodel Manual

Download as pdf or txt
Download as pdf or txt
Download as pdf or txt
You are on page 1/ 59

FAMILIARIZATION WITH PROMODEL

Figure 1. Promodel World View

Within ProModel, we fit everything into the paradigm of Locations, Entries, Processing,
and Arrivals. Every conceivable manufacturing system can be modeled using these four
elements.

Locations: Locations represent fixed places in the system where entities are routed for
processing, storage, or some other activity or decision making.

Entities: Anything that a model processes is called an ‘entity’. Some examples include
parts, products, people or even paperwork.

Processing: Processing describes the operations that take place at a location, such as the
amount of time an entity spends there, the resources it needs to complete processing, and
anything else that happens at the location, including selecting an entity’s next destination.

Arrivals: Anytime new entities are introduced into the system, it is called an arrival.

Figure 2. Elements of Locations

1
To build locations:
- Left click on the desired location icon in the graphics tool box, then
left click in the layout window where you want the location to appear.
- A record is automatically created for the location in the Locations edit
table.
- The name, units, capacity, etc., can now be changed by clicking in the
appropriate box and typing in the desired changes.

Figure 3. Building Entities

To build entities:
- Left click on the desired entity graphic in the Entity Graphics tool box.
- A record will automatically be created in the Entity edit table.
- The name can then be changed and the size of the entity can be
adjusted by moving the slide bar in the tool box.

Figure 4. Create Processing

2
To create processing:
- Left click on the entity name in the tool bar and then left click on the
desired beginning location.
- Left click on the destination location.
- A processing record will automatically be created.
- To add more routing lines to the same record, left click on the Add
Routings button in the tool box.
- To route the part to exit, simply left click on the Route to Exit button
in the tool box.

Figure 5. Create Arrival Elements

To create arrivals:
- Left click on the entity name in the tool box, and left click on the
location where you would like entities to arrive.

Entity: The arriving entity.


Location: The location at which the entity will arrive.
Qty Each: The number of entities (in a group) that will arrive at a specified time.
First Time: The first time (in simulation clock time) that the arrival pattern will start.
Occurrences: The number of times entity groups will arrive.
Frequency: The time between occurrences.

3
Figure 6. Running the Simulation

We are now ready to run the simulation. F12 will save the model for us (we can give it an
eight character name) and F10 will run the model. From the Simulation menu we can also
choose Run or Save and Run. Under the Simulation menu icon Options, the above dialog
box appears. The number of run hours can be specified in the Run Hours field, as can the
clock precision. We will look at some of the other options later on in the class.

Figure 7. Output Editor View

When the model run is complete, ProModel will prompt you to see the output statistics.
Choosing yes will bring you into the Output Editor. There are two main parts, the General
Report has dozens of statistics about the performance of the system, while the tool bar

4
allows you to manipulate the information in the form of graphs, plots, histograms, etc.
More about the data interpretation will be included with each sample model.

Figure 8. File Menu

Let us take a look at the menus that ProModel offers. The file menu is used for file
management, model merging, printing, and model packaging.

File menu -
New – closes any currently opened model so a new model can be built.
Open – opens a user-specified model and clears previous model data.
Import – imports background graphics, and models or submodels from other sources.
Merge – merges a selected ProModel model or submodel into the current model.
Save/Save As – saves an open model under the current or new file name.
View/Print Text – displays/prints the current model.
Print Layout – prints the model layout to a printer.
Printer Setup – opens a dialog box to allow printers to be selected or controlled.
Create/Install Model Package – copies the current model and all associated files to a
specified directory or disk as a <model name>.PKG file.

5
Figure 9. Build Menu

Under the Build menu we go to work defining the model. This menu contains all building
blocks. Our basic blocks are Locations, Entities, Processing, and Arrivals.

Build Menu

Locations – as defined in the overview of ProModel.


Entities – as defined in the overview of ProModel.
Path Networks – consists of nodes, which are connected by path segments.
Resources – a single operator, CellOp, performs all operations.
Processing – as defined in the overview of ProModel.
Arrivals – as defined in the overview of ProModel.
Shifts – allows you to schedule the availability of resources and locations.
Attributes – numeric tags attached to entities or locations.
Variables (global) – are place holders defined by the user to represent changing numeric
values.
Arrays – matrices of cells that contain real or integer values.
Macros – are place holders for an often used expression, set of statements and functions,
or any text that might be used in an expression or logic field.
Subroutines – are user-defined commands that can be called to perform a block of logic
and optionally return a value.
More Elements – allows to access other elements which are not in the build menu tool
box.
General Information – allows you to specify basic information about a model, such as its
name, default time units, and graphic library.
Background Graphics – allow you to enhance a model by adding a background to the
animation.

6
Figure10. Simulation Menu

The Simulation menu allows us to control the nature of the subsequent model run.

Simulation
Run – allows you to run the simulation for a specified length of time.
Save and Run – allows you to save and run the model at the same time.
Options – allows you to set various directory and display defaults.
Model Parameters – allows you to modify the current settings for the Run-Time Interface
parameters defined in the Macros module.
Scenarios – allows you to define different scenarios using defined Run-Time Interface
parameters.

Figure 11. Output and Tools Menu


The Output menu allows examination of post-model run statistics and trace files. The
Tools menu takes us into the graphic tools and search and replace functions.

Output
View Statistics – allows you to view the run statistics of the model.
View Trace – allows you to view the lists of events as they happen during a simulation.

7
Tools
Graphic Editor – allows you to create, edit, rearrange, or delete library graphics within a
particular graphics library file.
Expression Search – allows you to perform global search and replace functions on
expressions throughout any part of the model.

Figure 12. Options Menu

The Options menu contains the selections that allow you to control the environment
under which you build models.

Options
Auto Build – will guide you through the model building process and simulation steps by
prompting you to define the basic model elements.
Show/Snap to Grid – snaps all graphics to grid.
Show Networks/Routing Paths – displays all hidden networks or all routing paths used in
the model.
Zoom – allows you to select the zoom percentage.
Views – allow you to select from the views defined in the model.
Model Defaults – set the model to the defaults of the ProModel.
Editing Preferences – allow you to confirm record deletion, to view long build menu and
to recalculate path lengths when adjusted.
Directories – allow you to assign each default directory.
Refresh Layout – clears and redraws the graphics in the layout window.
Reset Window Positions – causes all edit tables to return to their original positions and
sizes.
Save Settings Now/on Exit – allows you to save the current settings now or on exit of the
program.

8
Name: ___________________________ Date Performed: ____________________
Subject and Section: ________________ Rating: ____________________________

EXERCISE NO. 1

CREATING PROCESSING TIMES

Discussion

In this exercise, we will cover the application of individual part processing,


cutting raw stock into pieces, and batching the parts for heat treatment.

Figure 13. Location Graphics View

There are number of selections available to spruce up the graphics and increase the on-
screen information associated with the locations in your model. Clicking off the NEW
button will allow you to add these elements to the highlighted location. Be careful to
highlight the location to which you want to add these elements and to click off the
NEW button!!

Counter - Displays the numeric contents of the location.

Gauge - Displays graphically the location contents.

Text - Associates text with the location.

9
Status Light - Changes color based on status of location.

Entity Spot - Spot where entities appear graphically at a location.

Region - Area (invisible during simulation) useful in defining locations on top of


the graphics.

Figure 14. Process Times Statements

To create processing times in your model, use the WAIT statement in the Operation
Logic. This makes the entity wait (occupy capacity in the location) for the specified
amount of time.

Figure 15. Move Times Statements

10
To specify the amount of time that an entity takes to travel between locations, use the
MOVE FOR statement in the Move Logic. This will cause the entity to move for the
given amount of time.

Objectives

At the end of the exercise, the students are expected to:

1. Be able to use WAIT and MOVE FOR statements in processing times.


2. Identify bottlenecks, and throughput calculations
3. Know how to use Cutting and Combine statements in processing.

Exercises

Figure 16. Model 1A Sample Model

READ THE ENTIRE MODEL DESCRIPTION BEFORE


STARTING TO BUILD THE MODEL.

In Model 1A raw_stock enters the system at input_pallet and goes to the splitter. From
there pieces travel to the lathe, the mill, and then to heat-treat. From heat_treat, a batch
goes to the output_pallet and a finished product leaves the output_pallet to EXIT. See the
flow chart on the next page.

11
For this model you will need to create the following records:

Locations
input_pallet
splitter
lathe
mill
heat_treat
output_pallet

Figure 17. Process Flow Chart of Model 1A

Entities
raw_stock
piece
finished_product
batch

Processing
Entity Location Operation Output Destination Move Logic
raw_stock input_pallet 0 raw_stock splitter .2
raw_stock splitter 4 piece lathe .2
piece lathe 3 piece mill .2
piece mill 2 piece heat_treat .2
piece heat_treat 10 batch output_pallet .2
batch output_pallet 0 finished_product EXIT 0

Arrivals
Entity Location Qty. each First time Occur Freq.
raw_stock input_pallet 1 0 inf 10

12
In the model, place a gauge on the heat_treat location and double click on the graphic in
the layout window to edit it to your liking. Also, add a counter to the output_pallet.
Double clicking on this will also allow you to edit it. The processing and move times
have been indicated above, but you will need to include the necessary WAIT and MOVE
FOR statements.

Go to Simulations/Options and set the model to run for ten hours. Save the model as
Model1A.mod and run it.

Figure 18. Cutting/Unbatching

This is essentially any type of operation where one part is separated into two or more
parts. This can be cutting, depalletizing, etc. The simplest way to accomplish this in
ProModel is by changing the output quantity in the routing rules dialog box. The next
page continues with this concept.

Figure 19. Cutting/Unbatching Illustrated

13
Under Building/Processing in the Routing edit table there is a quantity. This can be
accessed by clicking on the Rules button bar. Changing this quantity changes the number
that route to the downstream location. In other words, for every one entity that comes in,
five go out.

Figure 20. Batching/Combine Statement

Previously we talked about breaking parts up, now we need to address the issue of putting
them back together. For this there are several statements available in ProModel, but one
of the most common is the COMBINE statement. This combines and consolidates the
specified number of entities.

The COMBINE statement waits until the specified number of parts are in the location and
then they are combined into one entity and routed downstream as the output entity. It is
possible to change the name of the entity that routes from the location where the combine
took place.

See the above example.

14
Figure 21. Model 1B Exercise

READ THE ENTIRE MODEL DESCRIPTION


BEFORE STARTING TO BUILD THE MODEL

In model 1B , we have raw stock arrive at the input pallet where it is routed to a splitter.
From the splitter, five pieces leave and go to the lathe. From there, pieces go to the mill.
The pieces then go to the heat treat where 10 of them are combined (COMBINE
statement) and output as a batch. The batch then goes on the output pallet where five of
them are combined into (COMBINE statement) the finished product. From there the
finished product routes to exit.

In your model, make the following changes:

Locations Capacity
heat_ treat 10
output_pallet 5

Processing (still the same)


Entity Location Operation Output Destination Move Logic
raw_stock input_pallet 0 raw_stock splitter .2
raw_stock Splitter 4 piece lathe .2
piece Lathe 3 piece mill .2
piece Mill 2 piece heat_treat .2
piece heat_treat 10 batch output_pallet .2
batch output_pallet 0 finished_product EXIT 0

15
Arrivals
Entity Location Qty. each First time Occur Freq.
raw_stock input_pallet 1 0 inf 10

In the model, delete the gauge from the heat treat location and place a new one on (since
we changed the capacity of the location, we need to update the information on the gauge).
You will now need to include the necessary COMBINE statements at heat_treat and
output_pallet. The output quantity at the splitter will also need to be changed. Note that
the capacity of the locations where entities are combined must be increased.

Go to Simulation/Options and set the model to run for ten hours. Save the model as
MODEL1B.MOD and run it.

Results and Interpretations

16
Questions

1. What are the differences in Model 1A and Model 2B? Explain briefly.
2. What do the run statistics tell you about the whole process?
3. Identify bottlenecks in the whole process and interpret the results of both models.

Answers to Questions

Conclusions

17
Name: ___________________________ Date Performed: ____________________
Subject and Section: ________________ Rating: ____________________________

EXERCISE NO. 2

BUILDING VARIABLES AND CREATING MULTIPLE BLOCKS

Discussion

These are the topics to be covered in Model 2:

Figure 22. Topics Covered in Model 2


Variables in ProModel are place holders defined by the user to represent changing
numeric values.

Figure 23. Building Variables

To establish a variable that will be used in the model, go to the Build menu and choose
Variables.

The ID is the name by which the variable is identified in the model.

The type of variables can be integer (whole numbers) or real.

18
Figure 24. On-screen Counters for Variables

To place a variable in your model as an on-screen display, simply highlight the variable
record in the Variables edit table, and then click in the layout where you would like it to
appear.

Double clicking in the layout on the variable icon allows you to edit the font size, type,
and color, as well as the box characteristics.

Figure 25. INC/DEC Statements View

19
In order for variables to be useful, we need to manipulate their values. This is done with
the INC and DEC statements.

INC causes the variable value to be increased by the specified value, or by one if no value
is given.

DEC causes the variable value to de decreased by the specified value, or by one if no
value is given.

Variables are valid in any logic field.

Figure 26. Background Gaphics


If we want to place text or other graphics in the model, we accomplish that through
Build/Background Graphics. Get into this module and play around a little bit. The Tool
Bar at the left allows you to create and modify shapes, and the Icon Bar at the top lets you
place existing icons in the model as mere graphics. Note the Text tool at the top of the
Tool Bar. It appears as an A.

Figure 27. Adding Workstations

20
There are several ways of adding workstations, and the simulation Technique/Theory
section at the end of this model discusses some of the benefits and shortcomings of each
approach. In this example, we are going to increase the number of units of a location.
This is done by simply changing the value in the units field of the Location record. This
action creates child units that are identical to the parent location. The individual units are
selected for routing based on the rules defined in the parent location when you click on
the Rules button bar.

DO NOT ROUTE TO OR FROM A SPECIFIC UNIT OF A MULTI-UNIT LOCATION!!


(e.g. heat_treat.2)

Figure 28. Routing Blocks/Dialog Box

When routing a part to a downstream location, sometimes it is necessary to provide


multiple routes for the entity to follow. This is accomplished by creating multiple lines
or multiple blocks of routing.

If a routing record has multiple lines within one block, only one of the lines will be
executed, or in other words, the entity will only route to one location. The routing line
that the entity chooses is based on the routing rules that are established in the rules dialog
box.

If there are multiple blocks of routing, then each line will be executed and the specified
entity will route to each of the downstream locations indicated (thus creating entities).
This is done by clicking on the Rules button and clicking on the Start New Block box.

21
Figure 29. Inspection/Probability Routings

In some instances, there is a probability that a part will route to one area instead of
another. This effect can be modeled in ProModel by creating multiple lines in the same
routing block and selecting the Probability button in the Rules dialog box. From there we
assign each potential route a probability of occurrence. The probabilities in all the lines
must add to 1.0.

In our example, there is a 75% chance that a piece will go to heat_treat, with a 25%
chance that a reject will go to EXIT.

Remember that these lines must be in the same block!

Figure 30. Changing Entity Graphics

22
One of the most powerful animation tools in ProModel is the ability to change the
graphics of an Entity. This is done by going to Build/Entities and selecting the
appropriate entity in the record table.

From there we click off the NEW button (remember this from locations!!) and additional
spaces for graphics appear. By clicking on a blank space and then choosing an alternate
graphic from the icons, we can design different graphics for the entity. We can also use
the Edit button and Slide Bar to change the color, rotation, and size of the entity in the
animation.

To use one of the alternate graphics during a model run, the entity must execute a
GRAPHIC statement. By specifying GRAPHIC <expression>, the entity will change to
the appropriate graphic.

Example: GRAPHIC 2 (change to the second graphic)

Objectives

At the end of the exercise, the students are expected to:

1. Know how to build variables in the model.


2. Know how to manipulate background graphics.
3. Able to add workstations in the process.
4. Create multiple lines or multiple blocks for routing .

Exercise

Figure 31. Model 2 Sample Model

Model 2 is the same process as Model 1. We should have determined that heat_treat was
one of the major offenders in terms of bottlenecks. In order to correct this, we are going
to add another heat_treat unit. We are also going to inspect the parts from which we will
determine that 25% are rejects. To give us more on-screen information, we will set-up
variables and keep track of the following: WIP, rejected parts, and completed parts.

23
We therefore need to add the following to the model

Locations Capacity Units


inspect 1 1
heat_treat 10 2

Entities
reject

From the mill the pieces should go to inspect where you will set up one routing block
with 2 lines, each conditional upon a probability.

Processing
Entity Location Processing time Entity Destination Routing Move time
piece mill 2 piece inspect .1
piece inspect 1 piece heat_treat .75 .1
reject exit .25 0

Variables
ID TYPE
WIP integer
rejected_parts integer
completed_parts integer

You should increase the WIP variable when pieces are created after the splitter, and
decrease it when completed parts leave (also rejects!). Increment the rejected_parts
variable when rejects go to exit, and the completed_parts variable when good parts exit.
Place these variables on the screen and go into Background Graphics and give them
labels.

Finally we will change the graphic of the entities when they exit the lathe and then again
when they exit the mill. This will require you to go to Build/Entities and choose the Piece
entity and create 2 additional graphics for this entity. Then in the processing logic of the
respective locations, use the GRAPHIC statement to change the graphic of the entity
when it is through with the wait time.

Results and Interpretations

24
Questions

1. How will your model be affected if you change the probability routings for the piece
where there is a 85% chance that it will go to heat_treat, and a 15% chance that a
reject will go to EXIT?
2. How many defects, work-in-process, and completed parts have you obtained after the
processing in Model 2?
3. Analyze the system statistics obtained from Model 2. Discuss briefly.

Answers to Questions

25
Conclusions

26
Name: ___________________________ Date Performed: ____________________
Subject and Section: ________________ Rating: ____________________________

EXERCISE NO. 3

OPERATIONS ON CONVEYORS AND QUEUES

Discussion

In this exercise, we will construct Models 3A and 3B. Model 3A will look at
conveyors and queues while Model 3B will examine assembly operations.

The following are the topics that are covered in this exercise.

Figure 32. Conveyors

Conveyors are used to model actual material handling systems or any other method of
transporting entities that is similar to the behavior of an actual conveyor. Parts can only
be loaded onto a conveyor one at a time. The number of parts that are allowed on a
conveyor is limited by capacity as well as entity size and conveyor length.

The entity moves on the conveyors based on speed and length of the conveyor.
Accumulating conveyors act like rollers, while non-accumulating ones act like belts.

27
Figure 33. Queues Illustrations

Queues are used for storage, and inventory holders, and to create buffers in front of
locations.

Graphically the queue will only display as many entities as can be shown based on queue
size vs. entity size (graphics only).

It will still hold up to its capacity (default is infinite) but may not show them.

The MOVE statement allows you to control the time of movement of entities when the
queue/conveyor logic is executed. Logic before the MOVE statement gets executed at the
front of the queue/conveyor; logic after the MOVE statement will execute as the entity
arrives at the end.
The MOVE FOR statement allows you to control the length of time that it takes for an
entity to travel the length of the queue. If no MOVE FOR is given, the time will be length
of queue/entity speed.

Objectives

At the end of the exercise, the students are expected to:

1. Know how to use JOIN and LOAD/UNLOAD statements in the processing of


parts.
2. Be able to construct conveyors and queues in the model for building entities.
3. Understand the assembly operations using conveyors and queues.

28
Exercises

Figure 34. Model 3A Sample Model

In Model 3A we will create a network of queues and conveyors on which a box will
travel. In the next model we will modify this one to create more complex operations.

Create the following:

Locations capacity specs


monitor_queue 5 queue length 20
box_queue 5 queue length 20
workbench 1
shipping_queue 5 queue length 20
pallet_conveyor inf conveyor length 20 speed 20 / accumulating
Loading_zone 1
shipping_conveyor inf conveyor length 60 speed 20 / accumulating
shipping 1

Entities
Box

Processing

entity location operation output destination rules

box monitor_queue box workbench


box box_queue box workbench
box workbench 1 box shipping_queue
box shipping_queue box loading_zone
box pallet_conveyor box loading_zone
box loading_zone 5 box shipping conveyor
box shipping conveyor box shipping
box shipping 2 box EXIT

29
Arrivals
entity location quantity first time occur freq

box monitor_queue 1 0 inf 3


box box_queue 1 1 inf 3
box pallet_conveyor 1 5 inf 5

You will need to create the above processing and insert the appropriate WAIT statements.
Remember that double clicking on queue/conveyor location allows you to edit the
location.

Run the model for ten hours.

Figure 35. Join Statement

The join process is used to assemble two entities together. After the process, the entities
will be permanently joined. The first part of the join is the JOIN statement, which
essentially says “I am entity, join a part to me”. The corresponding rule acts like a delay,
holding the joining part up until the other entity executes the JOIN statement. For every
JOIN statement, there must be a corresponding If Join Request rule.

30
Figure 36. Load/Unload Statements

The LOAD statement works much like the JOIN statement, except the loaded parts can
later be unloaded, or disassembled.

The LOAD statement has two corresponding parts, the statement and the If Load
Request.

The UNLOAD statement will unload the specified number of entities at the location. You
must then create a processing record for all entities that have been unloaded.

See the example above.

Figure 37. Graphic Editor View

31
The graphic editor allows you to create and add new graphics to the current .glb file,
change existing graphics, and to create new .glb files.

There are a number of tools, both on the tool bar on the left as well as under the graphics
menu. The icon tools allow you to edit an existing icon, save the workspace information
as an icon, or delete the selected icon. The clear button clears the workspace.

If you want to add an icon to a graphic library, you must first create the icon in the
workspace. You must then save the graphic from the workspace to the library by clicking
the save button. To save the library, select save from the File menu.

Figure 38. Model 3B Sample Model

In this model, we are modifying the system of queues and conveyors to perform assembly
operations and loading parts onto another part.

Modify Model 3A in the following areas:


Entities
monitor
empty_box
full_box
pallet
loaded_pallet

Processing and arrivals for this location are as follows:

Processing
entity location processing entity destination routing move time

monitor monitor_queue MOVE monitor workbench Join 1


empty_box box_queue MOVE empty_box workbench first 1
empty_box workbench JOIN 1 full_box shipping_queue first 1
monitor
4 min

32
full_box shipping_queue full_box loading_zone Load 1
pallet pallet_conveyor pallet loading_zone first 1
pallet loading_zone LOAD 1 loaded_pall shipping_conve first 1
1 min et yor
loaded_pall shipping_conve loaded_pall shipping first 1
et yor et
loaded_pall shipping UNLOAD pallet pallet_conveyor first 1 .3 min
et 1
full_box shipping full_box EXIT

Arrivals
entity location qty each first time occur freq

monitor monitor_queue 5 0 inf 20


empty_box box_queue 5 0 inf 20
pallet pallet_conveyor 1 0 3 2

In the model, monitors and empty boxes are joined at the workbench and full boxes go on
to the loading zone via the shipping queue. From there they are loaded on a pallet and
travel via the shipping conveyor to shipping. The full boxes are unloaded from the
conveyor and exit the system. The pallets are then returned to the pallet conveyor where
they are recycled through the system.

Run the model for 10 hours and examine the outputs.

Results and Interpretations

33
Questions

1. Compare the output statistics of Model 3A with that of Model 3B. Discuss briefly the
differences.
2. What are the effects of using conveyors and queues in transporting products in an
assembly operation?
3. What can you say about the inventory levels for both Model 3A and Model 3B?
Discuss briefly.

Answers to Questions

Conclusions

34
Name: ___________________________ Date Performed: ____________________
Subject and Section: ________________ Rating: ____________________________

EXERCISE NO. 4

BUILDING RESOURCES AND PATH NETWORKS

Discussion

In this exercise, we will be using operators for operations. As such, we will build
resources and path networks for these operators to work in the process.

Figure 39. View of Resources on Promodel

A resource is a person, piece of equipment, or some other device that is used for any one
or more of the following functions: transporting entities, assisting in performing
operations on entities at locations, performing maintenance on locations, or performing
maintenance on other resources.

Go to Build/Resources and click on the desired graphic in the resource tool box. This
action will automatically create a record in the Resource Edit Table. From there you can
change the resource name, the number of units, and the specifications of the resources.

The specs allow you to define the network on which the resource travels (more on this
later), the nodes at which it parks (also later), and the motion of the resource.

35
Figure 40. Path Networks

Path Networks are the means by which resources travel.

Path Networks consist of nodes, which are connected by path segments. Path segments
are defined by a beginning node and an ending node and may be unidirectional or bi-
directional. Multiple path segments, which may be straight or jointed, are connected at
path nodes.

Creation of a path in the network starts by selecting the Paths button and then left
clicking in the layout where you want the path to start. Subsequent left clicks put joints in
the path, and a right click will end the path.

Figure 41. Interfaces of Path Networks

36
Interfaces tell ProModel where the resources interact with the location when it is on the
Path Network.

To create an interface between a node and a location, left click and release on the node
(you will get a dashed line streamer) and then left click and release on the location.

You can create multiple interfaces from a single node to locations, but you can only
create one interface from the same path network to a particular location.

Figure 42. Get/Free, Use and Move With Statements

The statements GET, FREE and USE are used to capture a resource for activity at a
location.

GET will capture the resource and it will remain with the entity until a FREE is specified.

USE will capture the resource for the specified amount of time and then automatically
free it.

MOVE WITH is used to capture a resource for transportation between locations (where
no activity is performed at the actual location). The resource will stay with the entity until
a THEN FREE statement or a FREE statement is encountered in the downstream logic.

37
Figure 43. Multiple Operators

The GET statement used in conjunction with AND and OR allows you to capture
multiple resources for a task or an alternate selection.

Objectives

At the end of the exercise, the students are expected to:

1. Know how to build resources and path networks in the model.


2. Be able to use GET, FREE, USE, and MOVE WITH in conjunction with the
resources.
3. Analyze the state graphs for resource utilization of the process.
4. Know the effectiveness of the resources used in the process.

Exercise

Figure 44. Model 4 Sample Model

38
In model 4 we will add resources to the previous model. Retrieve Model 3 and make the
following changes:

Create two path networks Net1 and NET2.


Net1 allows an operator to go from the workbench to the loading zone.
Net2 allows an operator to go from shipping to the loading zone, and up to the top of the
pallet conveyor.
Create interfaces from Net1 to the workbench and the loading zone, and from Net2 to
shipping, the loading zone, and the pallet conveyor.

Create two operators, Operator1 and Operator2.


In the specs, put Operator1 on Net1 and Operator2 on Net2.

Put GET, FREE, USE and MOVE WITH/THEN FREE statements in the appropriate
locations so that following activities are accomplished:
Operator1 performs the Join and the WAIT at the workbench
Operator1 and Operator2 perform the Load and the Wait at the loading
zone
Operator2 gets the pallets from shipping and takes them back to the pallet
conveyor.

Results and Interpretations

39
Questions:

1. How effective are the resources in Model 4?


2. Look at Resources in the General Report and comment on the resource utilization of
the operators in the model.
3. How is this model different from that of Model 3 in terms of resource utilization?
Discuss briefly.

Answers to Questions

Conclusions

40
Name: ___________________________ Date Performed: ____________________
Subject and Section: ________________ Rating: ____________________________

EXERCISE NO. 5

BUILD ATTRIBUTES AND MODEL MERGING

Discussion

In this exercise, we will deal with sorting, inspecting a sample, rework and cycle
time. Building attributes, creating distributions, and model merging are the topic to be
covered in Model 5.

Figure 45. Attributes in Promodel

Attributes are place holders similar to variables, but are attached to specific entities and
usually contain information about the entity.

To define an attribute, go to Build/Attributes and create an ID. Then choose the type and
classification. There can be attributes for locations, but we will only examine entity
attributes at this time.

Attributes are changed and assigned when an entity executes the line of logic that
contains an operator, much like the way variables work.

41
Figure 46. If-Then(Else) Statements
IF – THEN statements allow the user to execute specific lines of logic based on certain
conditions.
BEGIN and END statements are required if more than one line of logic is to be executed
based on the condition of the IF – THEN. If there are no BEGIN and END statements,
the model will execute only the first line after the IF – THEN based on the IF – THEN
condition.

The ELSE statement allows you to continue listing specific conditions. You can also
continue with ELSE IF – THEN statements.

Figure 47. Route Statement


Remember from previous material that the creation of two routing blocks will route
entities to both destinations. The ROUTE statement allows you to create several routing
blocks and then control which routing line gets executed.

The ROUTE statement followed by a number executes the specific route that is
referenced.

See the examples above.

42
Figure 48. Model Merging

Model Merge is a powerful tool that allows you to bring models together. You can create
run-offs to compare systems, bring in different sections of an operation, etc.

This is done by going to File/Merge and choosing model or submodel. The differences
are explained above.

After Model or Submodel is chosen, ProModel will prompt you for a model to merge,
and then a cross-hair will appear that represents the upper left-hand corner of the merging
model.

Objectives

At the end of the exercise, the students are expected to:

1. Learn and understand how to merge models.


2. Be able to use IF-THEN logic and ROUTE statements to the arrival operation.
3. Know how to create distributions using Logic Builder.
4. Know how to use CLOCK and LOG functions to keep track of time events.

43
Exercises

Figure 49. Model 5A Sample Model

In Model 5A we have parts that arrive and are given attributes, and then are sorted based
on part type. From there they move on to one of two machines and then proceed to a
queue where every fifth part is inspected. From there we have a rework rate of 30%.

Create the following:

Locations capacity
input_queue inf
lathe 1
mill 1
inspect_queue inf
inspect 1
pre_exit 1

Entities
Gear

Processing
Entity location operation output destination routing move
time
gear input_queue gear lathe .1
gear mill .1
gear lathe 3 gear inspect_queue .1
gear mill 4 gear inspect_queue .1
gear inspect_queue gear pre_exit .1

44
gear inspect .1
gear inspect 1 gear input_queue .30 .3
gear pre_exit .70 .1
gear pre_exit gear exit

arrivals
entity location qty each first occur freq
time
gear input_queue 1 0 inf 3

Attributes
ID type
part_type integer
entry_time real

Variables
ID type
Inspect_counter integer
Reworked_parts integer

You will need to merge a model into your own called arrivals.mod
(c:\promod3\models\training)

Also add the following line to the arrival logic: part_type = arrivals_distribution()
Sort the parts at input_queues so that parts with part_type attribute = 1 route to the lathe,
and those that are = 2 route to the mill. (use the IF-THEN construct with the ROUTE
statement for this).

At the inspect_queue, create logic that will route every fifth part to inspect; the others go
straight to pre_exit (Also with IF- THEN construct and variables)

At inspect, 70% of the parts route pre_exit and 30% route back to input_queue.

Figure 50. Probability Distributions

45
Choosing the correct distribution is a difficult task, not to mention choosing the correct
parameters for the distribution. This is generally done with the use of curve-fitting
software.

Distributions in our cases are associated with processing times, although they can be used
in a number of places within ProModel.

Not all events are discrete within the real world. They happen with some degree of
randomness. Distributions are one of ProModel’s methods of dealing with this effect
within the model.

Figure 51. Clock and Log Functions

The CLOCK and LOG functions allow you to keep track of time events (like cycle time,
lead time) within your model. The CLOCK function returns a real number, so attributes
and variables that are assigned to the CLOCK must be of type Real.

A Cycle time example follows:

We have defined an attribute called entry_time (type real).


At a location where the entities arrive we write this logic:
Entry_time = CLOCK()
This assigns the current clock time to each entity that passes through the logic.
At the end of the processing where entities exit the system we include this logic:
LOG “cycle time is”, entry_time
This subtracts the value stored in the attribute entry_time and records it with the header
“cycle time is”.

46
Figure 52. Model 5B Sample Model

In Model 5B we will add distributions to the model for process times, and track the parts
through the system to calculate the appropriate cycle times.

Change the processing times at the following locations:


Entity Location Operation
gear lathe N(3,.1)
gear mill N(4,.1)
gear inspect N(1,.1)

Create a time stamp when the part enters the input_queue using an attribute with the
CLOCK() statement.
Log the exit time at pre_exit using the same attribute and the LOG statement.

Results and Interpretations

47
Questions:

1. Looking at the total statistics for the cycle time by going to the LOG report at the end
of the General Report, what were the minimum and the maximum cycle time? To
what do you attribute these times? What about the shape of the graph?
2. Compare the run statistics for Model 5A and 5B. What are their basic differences? To
what can you attribute those differences?

Answers to Questions

Conclusions

48
Name: ___________________________ Date Performed: ____________________
Subject and Section: ________________ Rating: ____________________________

EXERCISE NO. 6

BUILD SHIFTS AND LOCATION DOWNTIMES

Discussion

In this exercise, the model will make use of building shifts and location
downtimes for preventive maintenance and operator shifts.

Figure 53. Preventive Maintenance

Preventive maintenance on a machine can be scheduled at regular intervals based on the


clock time that has expired, the number of entries that have occurred at a location, or the
usage of the machine in time. This is done with Location Downtimes.

Go to Build/Locations, and click on the DT’s button.

Logic is executed at the time of the downtime, and this can include the capture of
resources, WAIT times, and the assignment of variables just to mention a few items.

49
Figure 54. Functions of Shifts

Shifts in ProModel have been newly modified, and are now a very powerful method of
adding realism to your model. You can create schedules for your locations and resources
that mimic actual work schedules.

Figure 55. Definition of Shifts

When you choose Define, the Shift Editor will come up and you will be able to create a
file (.sft) that defines your shift.

Click and drag the appropriate bar (shift or break) to set up a shift. You can choose
Edit/Duplicate and duplicate a day. Holding down the shift key and clicking on the
desired days will make multiple duplications.

White space is considered off-shift time, while red space is considered break time.

50
Figure 56. Assignment of Shifts

Assigning resources and locations to the shift is done through Build/Shift/Apply.

Clicking on the Locations or Resources Button will bring up the dialog box that allows
you to select the desired locations/resources that will be on the shift.

Logic can also be executed previous to the shift/break as well as during the shift/break.

Figure 57. Running the Model with Shifts

To run the model using these shifts, go to the Simulation/Options dialog box and click on
the “define run length by date” box. This will bring up calendar type information that can
be adjusted to run for the appropriate dates.

51
Figure 58. Display Statement

The DISPLAY statement is valid in any logic. Part of the model exercise will be to find
out how to use this statement by looking in the on-line help.

Objectives

At the end of the exercise, the students are expected to:

1. Know how to build location downtimes and shifts.


2. Be able to assign resources and locations to shifts.
3. Know how to use DISPLAY statements in building models.

Exercise

Figure 59. Model 6 Sample Model

Model 6 is a continuation of Model 5, and it places a resource operator in the model who
will be on a shift. You should use the operator for processing at each location (lathe and

52
mill) and also for moving to the inspect queue after processing. The model will also
show preventive maintenance of the lathe and the mill. Set up the following:

Usage Downtime for Locations


loc freq first time priority logic
Lathe 120 120 99 N(10,.2)
Mill 100 100 99 N(10,.2)

Path networks
Net 1
Interfaces
lathe
mill
inspect_queue
Resources
Operator 1

You will need to set up a shift for the operator as well. Create the shifts and copy them
for every day using the Duplicate feature.

Shift 8am-5pm
Breaks10:00-10:15 12:00-13:00 15:00-15:15

You will also need to run the model using the shifts. Do this in Simulation/Options
dialog box. Run the model for only one day from 8:00 am to 5:00 pm.

In the logic for the Location downtime, use the GET and FREE statements to use the
resource for the maintenance. Also, use the DISPLAY statement to notify the user when
the machines go down.

It is possible to set up a break area for the resource by extending the path network to a
desired area and indicating the node as the break node in Resource specs.

Results and Interpretations

53
Questions:

1. Run the model using the shift and run the model without the shift. What differences
do you note in the above statistics? How can we improve the system?
2. What are the effects on production of using preventive maintenance and shifting in
operators? Examine the levels of inventory, resource utilization, machine wait times,
total throughput and cycle times for this model, so as to determine the effects.
3. What are advantages and disadvantages of having preventive maintenance in the
company?

Answers to Questions

Conclusions

54
Name: ___________________________ Date Performed: ____________________
Subject and Section: ________________ Rating: ____________________________

EXERCISE NO. 7

USING MACROS AND CREATING SCENARIOS

Discussion

In this exercise, the model will make use of macros for text substitution and for
creating Run Time Interface parameters. This feature will help in creating various
scenarios for the model itself.

Figure 60. Macros and RTI Interface

In ProModel, a macro can be used for text substitution. This is useful when there are
several blocks of code that are the same, and you want to refer to them with just one line.

Macros are also the way you create Run Time Interface parameters. When the RTI button
is clicked, you can now define how the model parameter will appear in the list, and what
prompt will be used.

This feature is especially useful when creating flexible models for other end users.

55
Figure 61. Generating Scenarios

Once the model parameter list is created, it is possible to run several scenarios where the
parameters are changed.

Figure 62. Advanced Statistics View

Multiple replications are run when there is randomness in the model and one data point
does not necessarily give an accurate representation of the actual system.

Running more than one replication is simply a matter of changing the number in the
replications field.

56
The method of batch means, or interval batching, is a way to collect independent samples
when simulating steady state systems as an alternative to running multiple replications.
The advantage over running multiple replications is that the warmup period is only run
once. When you select Batch Mean output reporting, the output statistics are collected for
each time interval indicated in the Interval Length field. The number of intervals is
determined by dividing the run length by the interval length.

Periodic statistics are useful primarily in terminating non-steady state simulations where
you are interested in the systems behavior during different periods (e.g., peak or lull
periods) of activity.

Objectives

At the end of the exercise, the students are expected to:

1. Know how to use macros and generate scenarios for various models.
2. Able to change model parameters using the macros.
3. Know how to interpret advanced statistics generated by the different models.

Exercise

Figure 63. Model 7 Sample Model

Retrieve Model 6 and make the following changes:

Create four macros to substitute for these items:

- mill processing time


- lathe processing time
- mill maintenance time
- lathe maintenance time

57
Create prompts for each of these items, and run the model making changes in the Model
Parameter list.

Run the model 5 replications and look at the output. Notice the effect of running multiple
replications.

Results and Interpretations

58
Questions

1. Look at the multiple replication results in the output editor. What do you notice
when running multiple replications?
2. When is it acceptable to only have one data point? When does it become
acceptable?
3. Compare the results of Model 6 and Model 7. What are their differences and
similarities?

Answers to Questions

Conclusions

59

You might also like