Using resource group member selection rules
A resource group contains one or more resources that perform the same type of work. For example, the "ChairNailing" resource group might contain three crew resources that are people who know how to nail the legs on a chair.
When defining an operation, you can specify that the Scheduler should allocate one or more members of a resource group to the load being processed at the operation. When you define a resource group, you specify a member selection rule that guides the allocation of members to a load being processed at an operation.
Using the Default Select in Sequence Rule
When the load of items arrives at the operation, the load must allocate one of the resources from the resource group required at that operation. By default, the Scheduler selects the first resource listed in the group definition. If another operation needs a resource from the same group and the first resource is busy, the Scheduler selects the next resource in the list, and so on. This default rule is called Select in Sequence.
If you use Select in Sequence for resource groups, you should define the resource group members in order of preferred usage. The Select in Sequence rule implies select member 1, then 2, and so on, with the last member being least preferred.
Using Complex Rules
Although Select in Sequence may suit your needs, specify more complex member selection rules to model a variety of situations. For example, you might want to distribute work across the resources in a group (with the default rule, the first resource listed may be most frequently selected). Use the Longest Idle rule to select the resource that has had the longest continuous idle period prior to the current request. Or use the Cyclic rule to select each resource in turn cyclically, starting with the next resource listed after the previously selected one.
The Index rule allows you to model parallel lines or processing cells. If you have multiple processing lines or cells with the same set of resources, and you want to stay within the same line/cell after you enter it, do the following:
- Define resource groups for each resource type within the lines/cells. For example, you can model a set of four processing cells, each with a drill, mill, and lathe, by using resource groups as follows:
- Define three groups (DRILLS, MILLS, and LATHES), each with a capacity of four units.
- Make sure the resource order in the groups reflects the cell order. For example, make DRILL1, MILL1, and LATHE1 the first entry in the resource groups DRILLS, MILLS, and LATHES, respectively.
- Define an attribute in the RESATTR table and initialize its ATTVALUE to zero. Reference that attribute’s name in the ALLOCATR field of all resource groups (in this example DRILLS, MILLS and LATHES). The Scheduler updates the attribute automatically based on the index of first member allocated.
Member Selection Example
In this example, assume these conditions:
- Item BK-110 has a routing with one operation, Oper110.
- Item CD-210 has a routing with one operation, Oper210.
- The operations for both items need resource group ST1.
- ST1 contains 2 resources: Crew1 and Crew2. These resources are both on-shift during the times illustrated in this example.
- ST1's allocation rule is the "Longest Idle" rule. That is, allocate the resource that has had the longest continuous idle period prior to the request.
- Operation Oper110 has a run time of 15 minutes and its Step Time Rule is Item Cycle Time (JOBSTEP.STEPEXPRL=1).
- Operation Oper210 has a run time of 12 minutes and its Step Time Rule is Item Cycle Time.
- Job110-000 for BK-110 is released at 9:00 a.m. for a quantity of 5.
- Job210-000 for CD-210 is released at 9:05 a.m. for a quantity of 5.
The events for this example would be represented in the Trace report as shown below.
Event | Description |
---|---|
SCHEDULE TIME ADVANCE TO 03/01/2002 9:00:00 | The Scheduler moves to the time the first events occur (the schedule itself may have been set to start earlier). |
03/01/2002 9:00:00 START OF ORDER ARRIVAL EVENT FOR ORDER Job110-000 RELEASING LOADS FOR ORDER Job110-000 CREATING LOAD 1, SIZE 5 OPERATION Oper110 SELECTED AS FIRST |
Job110-000 is released and the Scheduler places the job quantity into a load. The first job operation in the routing is identified. |
03/01/2002 9:00:00 START OF OPERATION EVENT PROCESSING OPERATION Oper110, LOAD 1 OF ORDER Job110-000 SCHEDULING END OF MOVE FOR OPERATION AT 03/01/2002 9:00:00 |
|
03/01/2002 9:00:00 START OF OPERATION EVENT PROCESSING OPERATION Oper110, LOAD 1 OF ORDER Job110-000 REQUESTING RESOURCE GROUP ST1 REQUESTING RESOURCE Crew1 FROM GROUP ST1 REQUESTING RESOURCE Crew2 FROM GROUP ST1 ALLOCATION NOT COMPLETE |
The Scheduler applies the resource allocation rule and enters a request for Oper110 into Crew1’s request queue. |
03/01/2002 9:00:00 START OF RESOURCE FREE CHECK EVENT FOR RESOURCE Crew1 PROCESSING OPERATION Oper110, LOAD 1 OF ORDER Job110-000 ALLOCATING 1 UNITS FROM RESOURCE GROUP ST1 CANCELING REQUEST FOR RESOURCE GROUP ST1 CANCELING REQUEST FOR RESOURCE Crew1 FROM GROUP ST1 CANCELING REQUEST FOR RESOURCE Crew2 FROM GROUP ST1 ALLOCATING RESOURCE Crew1 FROM GROUP ST1 ALLOCATION COMPLETE SETUP NOT NECESSARY OR OF ZERO DURATION SCHEDULING END OF SERVICE FOR OPERATION AT 03/01/2002 10:15:00 |
The Crew1 resource checks its request queue for any pending requests and
finds the request from Oper110. The Scheduler allocates the Crew1 resource from the ST1 resource group and calculates the time when the operation will be complete. |
03/01/2002 9:00:00 START OF RESOURCE FREE CHECK EVENT FOR RESOURCE Crew2 REQUEST QUEUE EMPTY |
The Crew2 resource checks for any pending requests; there are none. |
SCHEDULE TIME ADVANCE TO 03/01/2002 10:15:00 | The Scheduler moves to the time when the next events occur. |
03/01/2002 10:15:00 START OF ORDER ARRIVAL EVENT FOR ORDER Job210-000 RELEASING LOADS FOR ORDER Job210-000 CREATING LOAD 1, SIZE 5 OPERATION Oper210 SELECTED AS FIRST |
Job210-000 is released and the Scheduler places the job quantity into a load. The first job operation in the routing is identified. |
03/01/2002 10:15:00 START OF OPERATION EVENT PROCESSING OPERATION Oper210, LOAD 1 OF ORDER Job210-000 SCHEDULING END OF MOVE FOR OPERATION AT 03/01/2002 10:15:00 |
|
03/01/2002 10:15:00 START OF OPERATION EVENT PROCESSING OPERATION Oper110, LOAD 1 OF ORDER Job110-000 FREEING 1 UNITS OF RESOURCE GROUP ST1 FREEING RESOURCE Crew1 FROM GROUP ST1 Resource Crew1 IS NOW IDLE SCHEDULING END OF COOL FOR OPERATION AT 03/01/2002 10:15:00 |
Oper110 completes and frees the Crew1 resource. The Crew1 resource is now idle and available for other operations to allocate it. |
03/01/2002 10:15:00 START OF RESOURCE FREE CHECK EVENT FOR RESOURCE Crew1 REQUEST QUEUE EMPTY |
The Crew1 resource checks for any pending requests; there are none. |
03/01/2002 10:15:00 START OF OPERATION EVENT PROCESSING OPERATION Oper210, LOAD 1 OF ORDER Job210-000 REQUESTING RESOURCE GROUP ST1 REQUESTING RESOURCE Crew1 FROM GROUP ST1 REQUESTING RESOURCE Crew2 FROM GROUP ST1 ALLOCATION NOT COMPLETE |
The Scheduler applies the resource allocation rule and enters a request for Oper210 into Crew1’s request queue and Crew2’s request queue. |
03/01/2002 10:15:00 START OF OPERATION EVENT PROCESSING OPERATION Oper110, LOAD 1 OF ORDER Job110-000 END OF PROCESS FOUND SELECTING NEXT OPERATION END OF PROCESS FOR LOAD 1 OF ORDER Job110-000 0 LOADS OUTSTANDING ORDER Job110-000 COMPLETE |
The Scheduler finds no next operation specified for Oper110, so it completes Job110-000. |
03/01/2002 10:15:00 START OF RESOURCE FREE CHECK EVENT FOR RESOURCE Crew1 PROCESSING OPERATION Oper210, LOAD 1 OF ORDER Job210-000 ALLOCATING 1 UNITS FROM RESOURCE GROUP ST1 CANCELING REQUEST FOR RESOURCE GROUP ST1 CANCELING REQUEST FOR RESOURCE Crew1 FROM GROUP ST1 CANCELING REQUEST FOR RESOURCE Crew2 FROM GROUP ST1 ALLOCATING RESOURCE Crew2 FROM GROUP ST1 ALLOCATION COMPLETE SETUP NOT NECESSARY OR OF ZERO DURATION SCHEDULING END OF SERVICE FOR OPERATION AT 03/01/2002 11:15:00 |
The Scheduler checks for pending requests in the request queues of both
resources in the resource group. Both resources have pending
requests and both resources are free. The member selection rule is
Longest Idle. Therefore, because Crew2 has been idle up to this
point, the Scheduler allocates Crew2 to the waiting Oper210 load.
NOTE: If the member selection rule had been the default "Select in Sequence" rule, Crew1 would have been allocated because it appears first in the resource group record. Oper210’s request is removed from both resources’ request queues. The Scheduler calculates the time when Oper210 will be complete. |
03/01/2002 10:15:00 START OF RESOURCE FREE CHECK EVENT FOR RESOURCE Crew2 REQUEST QUEUE EMPTY |
|
SCHEDULE TIME ADVANCE TO 03/01/2002 11:15:00 | The Scheduler moves to the time when the next events occur. |
03/01/2002 11:15:00 START OF OPERATION EVENT PROCESSING OPERATION Oper210, LOAD 1 OF ORDER Job210-000 FREEING 1 UNITS OF RESOURCE GROUP ST1 FREEING RESOURCE Crew2 FROM GROUP ST1 RESOURCE Crew2 IS NOW IDLE SCHEDULING END OF COOL FOR OPERATION AT 03/01/2002 11:15:00 |
Oper210 completes and frees the Crew2 resource. The Crew2 resource is now idle and available for other operations to allocate it. |
03/01/2002 11:15:00 START OF RESOURCE FREE CHECK EVENT FOR RESOURCE Crew2 REQUEST QUEUE EMPTY |
|
03/01/2002 11:15:00 START OF OPERATION EVENT PROCESSING OPERATION Oper210, LOAD 1 OF ORDER Job210-000 END OF PROCESS FOUND SELECTING NEXT OPERATION END OF PROCESS FOR LOAD 1 OF ORDER Job210-000 0 LOADS OUTSTANDING ORDER Job210-000 COMPLETE |
The Scheduler finds no next operation specified for Oper210, so it completes Job210-000. |
SCHEDULE HALTED BECAUSE THERE WERE NO MORE ORDERS TO PROCESS SCHEDULE END AT 03/01/2002 11:15:00 |
The Schedule is now complete. |
Resource Group Member Selection Rules
Specify the member selection rule for a resource group in the RGRP.ALLOCRL field.
Code | Rule | Description |
---|---|---|
0 | Cyclic | Select the number of resources cyclically starting with the next resource listed after the previously selected one, and select the appropriate number of available members/resources. |
1 | Index | Select the resource with index equal to the number in the Allocation Rule Attribute field. If that resource is unavailable, the system waits for it. Note: A resource group member's "index" comes from the order resources are listed in the group definition. |
2 | Least Mean Utilization | Select the number of resources that have the least mean utilization. Ties are broken based on the order that resource group members are listed. |
3 | Longest Idle | Select the resource that has had the longest continuous idle period prior to this request. |
4 | Minimum Setup Time | Select the number of resources that have the minimum setup time for the first downstream operation. Ties are broken based on the order the resource group members are listed. |
5 | Random Selection | Select randomly the number of required resources. |
6 | Reserved for Order | Select the number of resources that are reserved for this order. If the required number is not available, available resources are chosen based on least current utilization. |
7 | Select in Sequence | Select the required number of resources, searching in the sequence that the resource group members are listed in the group definition (always start at the top of the list of resources). |
8-39 | User Defined. |