You are on page 1of 20

Discrete Event Simulation using Promodel

Discrete event simulation is the imitation of a dynamic system using computer model in order to
evaluate and improve system performance. Simulation provides a virtual method for doing
system experimentation.
Typical applications of simulation include:
Work-flow planning
Capacity planning
Cycle time reduction
Staff and resource planning
Bottleneck analysis
Inventory reduction
Throughput analysis

Cost reduction
Productivity improvement
Production scheduling
Line balancing
Batch size optimization
Layout analysis
Maintenance scheduling

Simulation analysis is appropriate if the following hold:


Decisions are operational in nature
Process is well defined and repetitive in nature
Activities and events are interdependent and variable
The cost of simulation analysis does not exceed potential cost reduction
Cost of simulation analysis does not exceed experimentation on the actual system
Benefits of Simulation approach
Captures system interdependencies
Accounts for variability in the process
Is versatile enough to model both manufacturing and service processes
Shows behavior over time
Is less costly, time consuming, and disruptive than experimenting on the actual system
Provides information on multiple performance measures
Provides results that are easy to understand and communicate
Runs in compressed time
Forces attention to detail in a process

Simulation procedure
Step 1: Define objective, scope, and requirements
Step 2: Collect and analyze system data
Step 3: Build and validate model
Step 4: Conduct experiments
Step 5: Analyze results and develop recommendations

Simulation system elements


Entities, activities, resources, and controls.
Entities
Items processed through the
system

Activities

Tasks performed in the system


either directly or indirectly on
the entities. Activities consume
time and use resources

Resources May be required for performing


activities. Have characteristics
such as, capacity, speed, cycle
time, reliability, etc.
Controls
Controls how, when, and where
activities are performed

System variability
Type of variability
Activity times
Event arrivals
Quantities
Decisions

Human/animate (customers, patients,


passenger, etc.)
Inanimate (Parts, documents, etc.)
Intangible (calls, e-mail, etc.)
Entity processing (check-in, treatment,
inspection, fabrication, etc.)
Entity/resource movement (ride elevator,
forklift travel, etc.)
Resource adjustment (Machine setups)
Maintenance & repair
Human/animate (operator, doctors, etc.)
Inanimate (equipment, tooling, etc.)
Intangible (information, power, etc.)
Production routing sequence
Work schedules
Task prioritization

Examples
Service time, repair time
Time between customer arrivals, time between failure
Order quantity, batch size, number of workers absent
Customer routing, accept/reject part, join queue

Random behavior
Discrete distribution

Finite number of possible values (number of items in a lot, number of


members in a group, etc.
Continuous distribution A range of values such as a time between arrivals, service time, travel
distance, etc.
System variables
Decision variables
Independent variable
Response variables

Controllable variables, such as number of machines, number of


windows
Service time, processing time
Variables that measure the system performance (metrics)

System performance metrics (Response variables)


Flow time
Average time it takes for an entity to be processed through the system
Utilization
Percentage of time resources are in productive use
Waiting time
Time spent waiting
Queue/inventory levels Number of customers waiting or parts in storage
Throughput
Number of customers served, no. of parts produced

Promodel objects
Object

Description

Entities

Anything the model


can process, such as
parts, customers,
patients.
Fixed place where
Capacity and
entities are routed for number of units
processing, waiting,
decision making, or
some other activity.

With New checked, click a


graphic .

Arrival parameters
for the entities

Click header Entity and


select the arrival entity.
Click header Location and
select the location for arrival.
Type INF for Occurrences
indicating no limit for number
of arrivals during the
simulation.
Enter inter-arrival time
parameter for Frequency.
E.g. for exponential time with
mean 2 minutes, enter e(2) min.
Click header Entity and
select an entity for processing.
Click header Location and
select a location.
Click header Operation and
type operation logic.
E.g.: wait N(2.4,.5) min
Click header Output and
select an entity for output
Click header Destination and
select a location
Click header Rule and set up
one or more rules for routing
the entity.
Click below the last row to
create alternative routing

Locations

Arrival

Processing Process routing for


an entity

Important
parameters

Arrival location,
number of objects
per arrival, total
number of
arrivals,
frequency

Process
Entity, Location,
and operation

Routing
Output,
Destination, Rule

Creating a record

With New checked, click a


graphic icon and click anywhere
in the layout. For a waiting line
double click the icon, change
object type to Queue and set
other parameters.

Example 1: Bank with one teller; Arrival of customers follows exponential distribution with an
average of one customer every 2 minutes. Service time follows normal distribution with an
average of 2.4 minutes and a standard deviation of .5 minutes. Waiting line is limited to 7
customers. Simulate the operation from 11 a.m. to 1 p.m. Let the warm-up period be 2 hours.
Flowchart
Arrival
Entity = Customer
Frequency = e(2) min

Teller Waiting Line


FIFO, Capacity = 7

Routing
First 1

Teller Window
Units = 1, Capacity = 1
Service time: N(2.4,.5) min

Entity record:

Location records

If the location is a queue, change Queuing for output to FIFO under the Rules tab.
Arrival record

Process and Routing

Routing for Customer from Teller_Waiting_Line

Routing for Customer from Teller

Exit

Command: File/View text or File/Print Text


********************************************************************************
*
Formatted Listing of Model:
*
*
P:\public_html\583\Notes\ProModel\Models\BankTeller-1.MOD
*
********************************************************************************
*
Locations
*
********************************************************************************
Name
Cap Units Stats
Rules
Cost
------------------- --- ----- ----------- --------------- -----------Teller_Waiting_Line 7
1
Time Series Oldest, FIFO,
Teller_Window
1
1
Time Series Oldest, , First
********************************************************************************
*
Entities
*
********************************************************************************
Name
Speed (fpm) Stats
Cost
---------- ------------ ----------- -----------Customer
150
Time Series
********************************************************************************
*
Processing
*
********************************************************************************
Process
Routing
Entity
-------Customer
Customer

Location
Operation
------------------- -----------------Teller_Waiting_Line
Teller_Window
Wait N(2.4,.5) min

Blk Output
Destination
Rule
---- -------- ------------- ------1
Customer Teller_Window FIRST 1
1

Customer EXIT

Move Logic
------------

FIRST 1

********************************************************************************
*
Arrivals
*
********************************************************************************
Entity
Location
Qty Each
First Time Occurrences Frequency Logic
-------- ------------------- ---------- ---------- ----------- ---------- -----------Customer Teller_Waiting_Line 1
INF
e(2) min

Simulation options

Results: Locations
Scheduled
Time (HR)

Capacity

Total
Entries

Avg Time Per


Entry (MIN)

Avg
Contents

Maximum
Contents

Current
Contents

%
Utilization

Teller Waiting Line

54.23

10.43

4.72

5.03

67.49

Teller Window

50.20

2.35

0.98

0.97

98.30

Name

Results: Location state Multi


Name

Scheduled
Time (HR)

% Empty

% Part
Occupied

% Full

% Down

4.66

78.10

17.24

Teller Waiting Line

Results: Location state Single


Name

Scheduled
Time (HR)

%
Operation

% Setup

% Idle

%
Waiting

% Blocked

%
Down

98.30

1.70

Teller Window

Results: Failed arrivals


Entity Name
Customer

Location Name

Total Failed

Teller Waiting Line

9.6

Results: Entity Activity


Name

Total
Exits

Current Qty
In System

Avg Time In
System
(MIN)

Avg Time In
Move Logic
(MIN)

Avg Time
Waiting
(MIN)

Avg Time In
Operation
(MIN)

Avg Time
Blocked (MIN)

Customer

49.23

13.80

0.00

9.09

2.40

2.32

% In Operation
17.9

% Blocked
17.2

Results: Entity States


Name
Customer

% In Move Logic
0

% Waiting
65.0

Summary of average results:


Lobby
Total number of customers served =

49.23

Average wait time for exited customers (minutes) =

9.09 + 2.32 = 11.41 minutes

Average length of waiting line =

4.72 customers

Average wait time for all customers including ones still


in the bank (minutes) =

10.43 minutes

% of time waiting line is empty =

4.66%

% of time waiting line is full =

17.24%

Utilization of teller windows

98.3%

Service Level
Total customer arrivals = Total entries at the waiting line + Failed arrivals = 54.23 + 9.60 = 63.83
Service level = Total entries at the waiting line /Total customer arrivals = (54.23/63.83) x 100 = 84.96%
Example 2: Same bank as before, but with two tellers and 40% of arriving customers first sit at
a desk and fill out forms. Time to fill forms takes between 2.5 and 5.5 minutes. Assume total
customers in the bank cannot exceed 13.
Flowchart
Arrival
Entity = Customer
Frequency = e(2) min

p = .4
Door
Capacity

=1
p = .6

Desk
Capacity = 3
Service time: U(4,1.5)
min
Routing
First 1
Teller_Waiting_Line
FIFO, Capacity = 7
Routing
First 1
Teller_Window
Units = 2, Capacity = 1
Service time: N(2.4,.5)

Exit

********************************************************************************
*
Locations
*
********************************************************************************
Name
Cap Units Stats
Rules
Cost
------------------- --- ----- ----------- --------------- -----------Door
1
1
Time Series Oldest, ,
Desks
3
1
Time Series Oldest, , First
Teller_Waiting_Line 7
1
Time Series Oldest, FIFO,
Teller_Window
1
2
Time Series Oldest, , First
Teller_Window.1
1
1
Time Series Oldest, ,
Teller_Window.2
1
1
Time Series Oldest, ,
********************************************************************************
*
Entities
*
********************************************************************************
Name
Speed (fpm) Stats
Cost
---------- ------------ ----------- -----------Customer
150
Time Series
********************************************************************************
*
Processing
*
********************************************************************************
Process
Entity
Location
Operation
-------- ------------------- -----------------Customer Door
Customer Desks

Routing
Blk Output
---- -------1
Customer
Customer

Destination
------------------Teller_Waiting_Line
Desks

Rule
---------0.600000 1
0.400000

WAIT U(4, 1.5) min

Customer Teller_Waiting_Line
Customer Teller_Window
Wait N(2.4,.5) min

1
1

Customer Teller_Waiting_Line FIRST 1


Customer Teller_Window
FIRST 1

Customer EXIT

FIRST 1

Move Logic
------------

********************************************************************************
*
Arrivals
*
********************************************************************************
Entity
Location Qty Each
First Time Occurrences Frequency Logic
-------- -------- ---------- ---------- ----------- ---------- -----------Customer Door
1
0
INF
e(2) min

Results: Locations
Name
Door
Desks
Teller Waiting Line
Teller Window.1
Teller Window.2
Teller Window

Scheduled
Time (HR)
2
2
2
2
2
4

Total
Entries
61.43
26.50
61.50
34.90
27.47
62.37

Capacity
1
3
7
1
1
2

Avg Time Per


Entry (MIN)
0.02
3.85
0.70
2.34
2.36
2.35

Avg
Contents
0.01
0.85
0.38
0.68
0.54
0.61

Maximum
Contents
1.00
3.00
3.53
1.00
1.00
2.00

Current
Contents
0.00
0.93
0.20
0.70
0.47
1.17

%
Utilization
0.86
28.32
5.38
68.00
54.04
61.02

Results: Location state Multi


Name
Desks
Teller Waiting Line

Scheduled Time (HR)


2
2

% Empty
42.68
77.33

% Part Occupied
51.68
22.67

% Full
5.64
0.00

% Down
0.00
0.00

% Idle
99.14
32.00
45.96
38.98

% Waiting
0
0
0
0

Results: Location state Single


Name
Door
Teller Window.1
Teller Window.2
Teller Window

Scheduled Time (HR)


2
2
2
4

% Operation
0
68.00
54.04
61.02

% Setup
0
0
0
0

% Blocked
0.86
0
0
0

% Down
0
0
0
0

Results: Failed arrivals


Entity Name
Customer

Location Name
Door

Total Failed
0.6

Results: Entity Activity


Name
Customer

Total
Exits
61.20

Current Qty
In System
2.30

Avg Time In
System
(MIN)
4.76

Avg Time In
Move Logic
(MIN)
0.00

Avg Time
Waiting
(MIN)
0.27

Avg Time In
Operation
(MIN)
4.05

Avg Time
Blocked (MIN)
0.44

Results: Entity States


Name
Customer

% In Move Logic
0

% Waiting
5.35

% In Operation
85.59

% Blocked
9.05

Summary of average results:


Lobby
Total number of customers served =

61.20

Average wait time for exited customers (minutes) =

0.27 + 0.44 = 0.71 minutes

Average length of waiting line =

0.38 + .01 = .39 customers

Average wait time for all customers including ones still in the bank (minutes) = 0.70 + 0.02 = 0.72 minutes
% of time waiting line is empty =

77.33%

% of time waiting line is full =


% of time desks are empty =
% of time desks are full =
Utilization of teller windows: Window # 1 = 68.0%, Window #2 = 54.04%, Overall = 61.02%
Service Level
Total customer arrivals = Total entries at the door + Failed arrivals = 61.43 + 0.60 = 62.03
Service level = Total entries at the door/Total customer arrivals = (61.43/62.03) x 100 = 99.0%

0%
42.68%
5.64%

Example 3: Same bank as in example 2, but with an ATM and a drive-thru window. The
waiting line for ATM is limited to 3 customers. For customers arriving at the lobby, assume
40%-40%-20% for customer directly joining the queue, sit down to fill forms and joining the
ATM waiting line, respectively. The time to complete the ATM transaction follows normal
distribution with mean = 2 minutes, and standard deviation =.5 minutes.
For the drive-through line, cars arrive according to exponential distribution with a mean of 5
minutes. Service time for drive-thru window is triangular with minimum of 1 minutes, mode of
2 minutes and maximum of 5 minutes. There are only two tellers serving the two teller windows
inside the lobby of the bank and the drive-through window. Also, assume only three cars can
wait in line for drive-thru service.
In addition to other statistics, track the number of customers in the bank also.
Flowchart
Arrival 1
Entity = Customer
Frequency = e(2) min

p = .4

Increment
Customers_in_bank

Door
Capacity

=1

p = .4

p = .2

Teller_Waiting_Line
FIFO, Capacity = 7

ATM_Line
FIFO, Capacity = 3

Exit
Decrement
Customers_in_bank

Routing
First 1

ATM
Units=1, Capacity =1
Service time: N(2,.5) min

Arrival 2
Entity = Car
Frequency = e(5) min

Desk
Capacity = 3
Service time: U(4,1.5)
min
Routing
First 1

Teller_Window
Units = 2, Capacity = 1
Service time: N(2.4,.5) min

Exit
Decrement
Customers_in_bank

Resources
Shared_Teller = 2 units
DriveThru_Line
FIFO, Capacity

=3

DriveThru_Window
Units = 1, Capacity = 1
Service time: T(1,2,5) min

Exit

********************************************************************************
*
Locations
*
********************************************************************************
Name
------------------Door
Desk
Teller_Waiting_Line
Teller_window
Teller_window.1
Teller_window.2
ATM_Line
ATM
DriveThru_Line
DriveThru_Window

Cap
--1
3
7
1
1
1
3
1
3
1

Units
----1
1
1
2
1
1
1
1
1
1

Stats
----------Time Series
Time Series
Time Series
Time Series
Time Series
Time Series
Time Series
Time Series
Time Series
Time Series

Rules
Cost
--------------- -----------Oldest, ,
Oldest, , First
Oldest, FIFO,
Oldest, , First
Oldest, ,
Oldest, ,
Oldest, FIFO,
Oldest, ,
Oldest, FIFO,
Oldest, ,

********************************************************************************
*
Entities
*
********************************************************************************
Name
Speed (fpm) Stats
Cost
---------- ------------ ----------- -----------Customer
150
Time Series
Car
150
Time Series
********************************************************************************
*
Resources
*
********************************************************************************
Res
Ent
Name
Units Stats
Search Search Path
Motion
Cost
------------- ----- -------- ------ ------ ---------- -------------- -----------Shared_Teller 2
By Unit None
Oldest
Empty: 150 fpm
Full: 150 fpm
********************************************************************************
*
Processing
*
********************************************************************************
Process
Entity
Location
Operation
Blk Output
-------- ------------------- --------------------- -------Customer Door
Inc Customer_In_Bank
1
Customer
Customer
Customer
Customer Desk
WAIT U(4, 1.5) min
1
Customer
Customer Teller_Waiting_Line
1
Customer
Customer Teller_window
GET 1 Shared_Teller
Wait N(2.4,.5) min
FREE 1 Shared_Teller
Dec Customer_In_Bank
1
Customer
Customer ATM_Line
1
Customer
Customer ATM
Wait N(2,.5) min
1
Customer
Dec Customer_In_Bank
Car
DriveThru_Line
1
Car
Car
DriveThru_Window
Get 1 Shared_Teller
WAIT T(1,2,5) min
Free 1 Shared_Teller
1
Car

Routing
Destination
Rule
------------------- ---------Teller_Waiting_Line 0.400000 1
Desk
0.400000
ATM_Line
0.200000
Teller_Waiting_Line FIRST 1
Teller_window
FIRST 1

EXIT
ATM
EXIT

FIRST 1
FIRST 1
FIRST 1

DriveThru_Window

FIRST 1

EXIT

FIRST 1

********************************************************************************
*
Arrivals
*
********************************************************************************
Entity
Location
Qty Each
First Time Occurrences Frequency Logic
-------- -------------- ---------- ---------- ----------- ---------- -----------Customer Door
1
0
INF
e(2) min
Car
DriveThru_Line 1
0
INF
e(5) min
********************************************************************************
*
Variables (global)
*
********************************************************************************
ID
Type
Initial value Stats
---------------- ------------ ------------- ----------Customers_In_Bank Integer
0
Time Series

Move Logic
------------

Results: Locations
Name
Door
Desk
Teller Waiting Line
Teller window.1
Teller window.2
Teller window
ATM Line
ATM
DriveThru Line
DriveThru Window

Scheduled
Time (HR)
2
2
2
2
2
4
2
2
2
2

Total
Entries
60.03
24.53
48.53
27.97
21.40
49.37
11.50
11.70
23.37
23.57

Capacity
1
3
7
1
1
2
3
1
3
1

Avg Time Per


Entry (MIN)
0.01
3.84
1.09
2.77
2.90
2.82
0.22
2.00
2.07
3.00

Avg
Contents
0.01
0.78
0.47
0.64
0.52
0.58
0.03
0.19
0.44
0.59

Maximum
Contents
1.00
2.93
3.60
1.00
1.00
2.00
1.23
1.00
2.47
1.00

Current
Contents
0.03
1.10
0.20
0.57
0.43
1.00
0.00
0.10
0.43
0.70

%
Utilization
0.63
26.14
6.69
64.46
51.99
58.22
0.87
19.40
14.80
59.23

Results: Location state Multi


Name
Desk
Teller Waiting Line
ATM Line
DriveThru Line

Scheduled Time (HR)


2
2
2
2

% Empty
44.96
76.46
97.80
71.30

% Part Occupied
50.33
23.06
2.10
25.31

% Full
4.71
0.48
0.09
3.39

% Down
0
0
0
0

% Operation
0.00
55.30
41.64
48.47
19.40
50.83

% Setup
0.00
0.00
0.00
0.00
0.00
0.00

% Idle
99.37
35.54
48.01
41.78
80.60
40.77

% Waiting
0.00
9.16
10.36
9.76
0.00
8.40

Results: Location state Single


Name
Door
Teller window.1
Teller window.2
Teller window
ATM
DriveThru Window

Scheduled Time (HR)


2
2
2
4
2
2

% Blocked
0.63
0.00
0.00
0.00
0.00
0.00

Results: Resources
Name
Shared Teller.1
Shared Teller.2
Shared Teller

Units
1
1
2

Scheduled
Time (HR)
2
2
4

Number
Times Used
36.03
36.57
72.60

Avg Time Per


Usage (MIN)
2.46
2.44
2.44

%
Utilization
73.76
74.00
73.88

Results: Resources states


Name
Shared Teller.1
Shared Teller.2
Shared Teller

Scheduled Time (HR)


2
2
4

% In Use
73.76
74.00
73.88

% Idle
26.24
26.00
26.12

% Down
0
0
0

Results: Failed arrivals


Entity Name

Location Name

Total Failed

Door

0.4

DriveThru Line

Customer
Car

Results: Entity Activity


Name
Customer
Car

Total
Exits
59.97
22.87

Current Qty
In System
2.43
1.13

Avg Time In
System
(MIN)
5.25
5.21

Avg Time In
Move Logic
(MIN)
0.00
0.00

Avg Time
Waiting
(MIN)
0.83
1.15

Avg Time In
Operation
(MIN)
3.90
2.66

Avg Time
Blocked (MIN)
0.52
1.40

% Down
0
0
0
0
0
0

Results: Entity States


Name
Customer
Car

% In Move Logic
0
0

% Waiting
13.87
19.34

% In Operation
76.58
55.43

% Blocked
9.55
25.23

Results: Variables
Name
Customers In Bank

Total Changes
120

Avg Time Per


Change (MIN)
1.00

Minimum
Value
0.00

Maximum
Value
7.27

Current
Value
2.43

Avg Value
2.64

Summary of average results:


Total number of customers served =
Total number of customers in the bank (Lobby +ATM)
Average wait time for exited customers (minutes) =
Average length of waiting line
Average wait time for all customers including ones still
in the bank (minutes) =
% of time waiting line is empty =
% of time waiting line is full =
% of time desks are empty =
% of time desks are full =

Lobby

ATM

Cars

59.97

22.87

2.64

0.83 + 0.52 = 1.35

1.15 + 1.40 = 2.55

0.47

0.03

0.44

.01 + 1.09 = 1.10

.01 + .22 = .23

2.07

76.46%

97.80%

71.30%

0.48%

0.09%

3.39%

44.96%
4.71%

Utilization of tellers (Overall)

73.88%

Teller 1

73.76%

Teller 2

74.00%

Service level:
Total customer arrivals = Total entries at the door + Failed arrivals = i.e. = 60.03 + 0.40 = 60.43
Service level = Total entries at the door /Total customer arrivals = (60.03/60.43) x 100 = 99.3%
Total car arrivals = Total entries at the drive-through line + failed car arrivals = 23.37 + 1.00 = 24.37
Service level for car arrivals = (23.37/24.37) x 100 = 95.90%

Lobby operation comparison


Summary of average results:
Bank 1

Bank 2

Bank 3

Total number of customers served =

49.23

61.20

59.97 + 22.87 cars

Average wait time for exited customers (minutes) =

11.41

0.71

1.35

4.72

0.38

0.47

10.43

0.72

1.10

4.66%

77.33%

76.46%

17.24%

0%

0.48%

% of time desks are empty =

42.68%

44.96%

% of time desks are full =

5.64%

4.71%

98.3%

61.02%

73.88%

Teller 1

68.00%

73.76%

Teller 2

54.04%

74.00%

84.96%

99%

99.3% (walk-in) &


95.90% (cars)

Average length of waiting line


Average wait time for all customers including ones still
in the bank (minutes) =
% of time waiting line is empty =
% of time waiting line is full =

Utilization of tellers (Overall)

Service level (% customer able to enter)

Example 4: Consider the same bank as in example 3. Suppose that 20% of the arriving customers are
business customers, and the remaining 80% are regular customers. Also, assume that the service time for
business customers will be according to exponential distribution with a mean of 20 minutes and no change in
service time for the regular customers.
Changes needed:
1. Define an entity Attribute for Customer Type
2. Define a User-defined distribution for the probability of customer type
3. Stamp each customer arrival with the Customer type attribute
4. Code the service time at teller window using Customer Type attribute
1. Define an entity Attribute for Customer Type

2. Define a User-defined distribution for the probability of customer type

Value = 1 represents business customer


Value = 2 represents regular customer

3. Stamp each customer arrival with the Customer type attribute in the Arrival Table

4. Code the service time in the Process Table at the Teller window location using Customer Type attribute

Code for service time for the two


customer types

Routing Rule Dialog Box


The Routing Rule dialog box provides methods for selecting an entity's destination after finishing a process. The
Rule heading button in the Routing edit table, brings up the Routing Rule dialog box. The fields of this dialog box
are defined in the following example.

Start new block Check this box to signal the beginning of a new routing block. Checking this box will place a
number in the Blk field for that record.

First Available
By turn
Until full
Probability
User condition
Most available
Random
Longest Unoccupied
If Send
If Join Request

Routing is to the first available location in the order they are listed.
Routing rotates through the locations in the list.
Routing is to a single location until it is full; then it is switched to the
next location, and so on.
Routing is according to the given probabilities.
Routing is based on the condition provided.
Routing is to the location with most available capacity.
Routing is at random.
Routing is to the location that was unoccupied the longest.
Routed based on a SEND request from a location to the destination
location.
Selects a location whenever a JOIN request is issued at that location.
Entities routed with the JOIN routing rule are not actually sent to their
destination until a JOIN statement is encountered at the destination
location.

Advanced commands
Three commands for using and releasing resources:
Get/Free
Syntax samples
GET {<quantity>} <resource> {,<priority>} {AND or OR {quantity} <resource> {,<priority>}...}
GET Res1
GET 3 Res1, 5
GET 2 Res1OR 3 Res2
GET Res1, 3 AND (Res2 OR Res3)

Description: Captures a specified number of resources as they become available. A resource captured with the GET
statement is released with a FREE statement. Every GET must have a corresponding FREE or an error occurs when
the entity exits the system.
Use
Syntax samples
USE {<quantity>} <resource> {,<priority>} FOR <time> {AND or OR {<quantity>}
<resource> {,<priority>} FOR <time>... }
USE 2 Res2, 5 FOR 4:23:03
USE 2 Res1 FOR 2.0 min OR 3 Res2 FOR 1.5 min
USE Res1, 3 FOR 1 hr AND (Res2 FOR 5 OR Res3 FOR 5)
Description: Captures a resource or combination of resources as each resource becomes available. Once the
resource has been captured it is used for the specified amount of time, and then freed when the specified duration is
over.
Jointly Get/Free ALL
Syntax samples
JOINTLY GET {<quantity>} <resource> {,<priority>} {AND or OR {<quantity>} <resource> {,<priority>}}
JOINTLY GET 3 Res1,5
JOINTLY GET 2 Res1 OR 3 Res2
JOINTLY GET Res1,3 AND (Res2 OR Res3)
Description: Captures a specified number of resources when that number of resources is available. When capturing
multiple resources, none of the resources will be captured until all are available. The command Free ALL can be
used to free all the resources.

You might also like