When we need to process different products in the same line we want to work out the best job sequence to minimize lead time and maximize capacity utilization.
The ideal of "Lean Production" is lot size of 1 but this is not always possible when there is a change over time. This change over involves loading different components and changing jigs or molds. When change over or setup time is significantly higher than process time we are forced to work with larger lot sizes.
In a sequential line products are processed through a number of workstations following a certain sequence but process parameters are typically different for each product. Each workstation, in order to do the work needs:
- equipment available
- operator ready
- WIP (Work In Process) from the previous workstation available
And we want to do the job with:
- minimum equipment time
- minimum operator time
- minimum WIP waiting
The problem is that unless everything is perfect someone has to wait:
In the case of a space ship in order to minimize the astronaut time: a huge team of ground personnel is available just in case.
In an airport, in order to maximize the runway utilization (airport bottleneck): planes, pilots, personnel, customers are waiting for take off.
In Formula I races 7 second service time is achieved with a team of 10 people doing nothing most of the time during the race.
In our sequential line in a workstation either the equipment or the operator will be idle or there will be excess WIP.
If process time for all the sequential operations are the same:
The process is perfect: nobody waits. While WS A is processing Order 2 WS B is processing Order 1 and the total lead time for each order is 4h.
If process time for operation A is shorter than B:
Order 2 will have to wait for operation B to finish with order 1 and therefore Order 2 will take 4h instead of 3 to complete and this will affect the total lead time seen by the customer waiting for this order. Also it will increase the amount of WIP in the line.
If time B is shorter:
Workstation B will be idle until order 2 arrives and this will decrease capacity utilization.
You can download an Excel scheduler for 4 sequential operations:
It is used to schedule an electronic circuit assembly line with 4 operations in this sequence:
- SMT: Surface Mount Technology automatic component placement and reflow sodering
- INS: Manual pin-thru-hole component insertion and wave soldering
- ICT: In-Circuit-Test
- FUN: Functional Test
In sheet Times we must input Equipment times, Operator times and Number of operators for each of the 4 operations and for each product.
In the existing data we want to maximize equipment utilization by adding as many operators as required to do this. Therefore:
Number of operators = Operator time / Equipment time (rounding up)
For instance number of operators for Prod A INS = 18:30 / 01:00 = 19 (rounded up)
Cycle time for each product and operation = maximum of Equipment time and (Operator time/ Number of operators)
The scheduler will use these calculated cycle times: Job operation time = Setup time + Cycle time x Quantity
Setup times for each operation are input in the Main sheet and are considered the same for all products.
With the current number of operators you can notice that Cycle times are identical to equipment times: by adding enough operators we have insured that the line capacity is limited by equipment times and not operator times.
Obviously the number of operators calculated may not be feasible, in which case we enter the available operators and processing will take longer as we will experience later.
Column A has the order in which we want to run the jobs. It should have numbers 1 to 10 in the order we decide.
Column B has the products to be produced selected for the ones we defined in sheet Times.
Column C holds the number of operations already completed (0 to 4)
Column D has the quantities we need to produce of each product
Finally the starting time stamp is the day and time we will start producing
The Gantt chart shows the scheduling result:
By placing the cursor on the chart we can see the starting or ending time stamp for any operation and product.
WIP waiting times are in light colors and these are what we want to minimize to reduce lead times.
We can also notice when workstations are idle.
In this case, if we start on 6/2/2019 at 6:00 and all 10 jobs will be finished before 12/2/2019.
Additional Inputs and Results
The number of work cells in each operation is 1 by default but we may have up to 5.
Setup times need to be defined for each operation. In this example it is the time it takes to unload all component reels and load the new ones for the next product. In the case of test it is the time it takes to change the test jigs and load the new program. We assume all products have the same setup times.
The next 2 lines are outputs:
- Total process times of each workstation (no waiting times included)
- Capacity utilization of each workstation. You can notice that SMT with 100% utilization is, in this case, the bottleneck for the whole line.
Total lead time and average lead time are outputs that will affect the customers which we want to minimize.
Schedule for Each Workstation
A detailed schedule is produced for each workstation with starting and ending timestamps and number of operators required.
The actual times can be added on the right columns to be used on the next reschedule.
Looking at the capacity utilization of the 4 workstations we notice that SMT has 100% utilization but all the rest are well below.
This indicates that the bottleneck of this line with these required quantities is SMT. In this case the bottleneck happens to be the first workstation so the following stations are starved of products so they can't process as much as they could.
The order in which we have scheduled the 10 jobs has been from lowest use of SMT (bottleneck) time to highest use.
Let's see what would happen if we reverse the order: Highest use of bottleneck first:
We notice that the total lead time has increased from 5 days 17h to 7 days: an increase of 1 day and 7 hours.
Average job lead time has also increased from 1d 10h 24m to 1d 13h 16m
It is obvious that it makes no sense to schedule products A and B at the end since they do no use the bottleneck so if we just put them first keeping the rest of the sequence as it is we would get a total lead time of 6 days 11h: still worse than the first option.
The first conclusion is that we should schedule focusing on the bottleneck workstation and process from least to most bottleneck use.
Bottleneck in the last operation
In this case, with the same products but different quantities to be processed we notice that this sequence has a lot of waiting time before the INS and FUN operations. Capacity utilization is very good but average lead time is very high: all jobs except the first have a lot of waiting and these long lead times will be unacceptable to the customer.
The bottleneck in this case is FUN: total time for all jobs is 114h 51m 40s much higher than the other workstations.
We notice that with this sequence we are scheduling from highest bottleneck (FUN) use to lowest, so let's try the reverse order:
Total lead time has increased 1d 4h but average lead time has decreased from 3 days 16h to 1 day 10h (less than half).
This, therefore, reinforces our previous conclusion: schedule from less bottleneck use to more.
Schedule with operators constraint
In the examples so far we have assumed that there are enough operators in each workstation so that the equipment never stops but this assumption may not be feasible.
Looking at the schedule for the INSERT operation we are using 19 operators for product A and the number decreases down to 1 for product J.
Let's assume that we only have 3 operators available to perform this operation for all products:
In the Times sheet we enter 3 in the number of operators for all products and the result is that now cycle times have increased above equipment times. This means that now the operators will be the constraint rather than the equipment in the INS workstation.
The resulting schedule is:
Now INS has become the bottleneck and there is an accumulation of products waiting to be processed in this workstation causing waiting time in all jobs. Average lead time has increased from 1 day 10h to 2 days 21h (it has doubled). Total lead time has only increased 10 hours.
In a line we will always have a bottleneck which limits the capacity of the whole line. In some cases we might be able to duplicate the bottleneck workstation to increase the overall line capacity.
Let's duplicate the SMT workstation which was the bottleneck in our first example to see the effect:
Total lead time has been reduced from 5 days 17h to 3 days 15h (more than 2 day reduction)
Average lead time has increased 4 hours: we have waiting in INS and FUN.
We notice that SMT capacity utilization has decreased from 100% to 86% while utilization in the other 3 workstations has increased.
Let's see if duplicate INS and FUN as well:
We notice that total lead time has not improved but average lead time has decreased 9 hours: practically no waiting time.
Since we have increased all capacities capacity utilizations have decreased.
Going back to our first schedule starting on 6/2/2019 we normally have to update this schedule at least daily or when a major change has taken place. We need to remove what has already been done and add any new jobs. Let's see how do we reschedule on the next day 7/2/2019:
We change our starting timestamp to 07/02/19 06:00 and then input in the OK column: Products A and B completed (4 operations finished) C and D only FUN is missing (3 completed), etc.
If there are any new jobs we would add them at the end shifting all jobs up.
Due to the setup times every time we change product we may think that the larger the lot size the better. Let's see this effect with a new example:
We need to produce these 5 products with quantities of 500 each. What would be the effect of splitting the jobs in two?
In spite of duplicating setup times we see average lead times have been halved and total lead time is also reduced.
- In order to commit a delivery time to the customer we need to schedule taking into account existing jobs already in process
- When a job is given priority we need to know the impact to all other current jobs
- Job scheduling enables lead time reduction while increasing resource utilization
- To minimize total lead time we should focus on the bottleneck
- Schedule jobs from lowest to highest bottleneck utilization
- After total lead time is minimized small changes in sequence will allow the reduction of waiting times and therefore the reduction of average lead time.
- By meeting the resulting schedule on each workstation we will insure on-time delivery to the customer.
- Regular rescheduling is required to adapt to the real current situation