Use
Resource-Related Operation Statement
The Use statement captures a Resource or a combination of Resources and holds them at a particular Location for a specified amount of time. Use this statement to simulate a Resource using a particular Location. Note that the Use statement may be defined in the Routes Logic, but the chosen Resources is used in the Route's source Location, rather than in the Route itself.
Syntax
Use {<quantity>} <resource> {,<priority>}
For <time> {And or Or {<quantity>}
<resource> {,<priority>} For <time>...}
Syntax Examples
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)
Use Oper_Attr Res(Type_Attr) For Time_Var1 Hr
Parameters
{<quantity>}
The number of Resource units to capture. If the quantity field is blank, ProModel assumes the quantity is 1. Note that if the Entity at the Location or Route where the Use statement is defined already owns Resources of the type requested from a Get or Jointly Get statement, the Entity still looks for an additional amount of Resources equal to the quantity requested, which can cause problems if the number of Resource units is not high enough to satisfy the request.
<resource>
The Resource name to use. You can substitute Res() for the resource name.
{,<priority>}
An optional part that defines the Entity's priority where the Use statement is defined in regards to how quickly it receives the requested Resources. This must be a number between 1 and 999, and the Entities with a higher number in the priority field receive their Resources before Entities with a lower number. If the priority field is blank for all Entities, they receive their Resources on a first come, first served basis. Note that if the priority field is blank, then no comma is needed between the Resource name and the For statement.
For <time>
Represents the amount of time to use the requested Resources. Unit is the unit of time to use. If no unit is specified, ProModel uses the default time unit specified in ProModel's General Information window.
Parameter Examples
Suppose you have a model where a Project Entity must be inspected at an Inspection Location for 10 minutes. To complete the inspection, the Inspection Location must use an Inspector Resource whenever a Project Entity enters the Inspection Location. To simulate this scenario, define the statement...
Use Inspector For 10 min
...in the Inspection Location Logic. Once an Inspector Resource became available, the Entity travels to the Inspection Location (this is visible in the simulation if the Resource has a Path Network defined for it) and stay there for 10 minutes before it is able to leave again.
If instead each inspection requires two Inspector Resources and three Supervisor Resources, define the statement...
Use 2 Inspector For 10 min And 3 Supervisor For 10 min
...in the Inspection Location Logic.
If instead either two Inspector Resources or three Supervisor Resources are able to complete the inspection, define the statement...
Use 2 Inspector For 10 min Or 3 Supervisor Resources
...in the Inspection Location Logic. Whichever condition can be satisfied first is used.
Now suppose that you have two Inspection Locations: InspectionTable1 and InspectionTable2. You want the inspections at InspectionTable1 to always receive attention before the inspections at InspectionTable2. To achieve this result, define the statement...
Use Inspector, 2 For 10 min
...in the Logic of InspectionTable1, and the statement...
Use Inspector, 1 For 10 min
...in the InspectionTable2 Logic. The values in the priority field ensure that in the case where both InspectionTable1 and InspectionTable2 were requesting an Inspector Resource, an available Inspector Resource goes to InspectorTable1.
Remarks
If an Entity uses a Use statement to capture a Resource, the Resource must complete its operation before you can preempt the Entity. However, if the Entity uses a Get, Wait, Free sequence, you may preempt the Entity during the Logic's Wait portion.
If multiple units of a Resource type are defined in the Use statement, the time specified after the For is treated as "total man-hours". For example, in the statement "Use 2 Worker For 1 hr," a total of two man-hours is required (i.e., 2 units x 1 hour = 2 man-hours). In the case where only one Worker resource unit is available, that unit can be used for a total elapsed time of two hours if a second unit never becomes available during the process. However, if two units of the Worker resource are available at the same time, only one hour of elapsed processing time occurs. To further illustrate, if one unit is captured and used for one hour after which time the second unit is then captured, the remaining one man-hour of time is divided between the two units and together complete it in half an hour. In this case, the Entity is processed in an elapsed time of 1.5 hours.
Use is valid in operation, downtime, move, shift and break logic.