Post

Real Time Analysis for Production Lines (Determining worker occupation time)

Using Real Time (RT) Analysis to Compute Worker Occuption on a Production Line

When it comes to starting a new project in a manufacturing company, determining the costs to come up with a quote is important :

  • Aim too high and the client will not work with you
  • Aim too low and you’ll go bankrupt

And a big part of the costs on a production line are directly linked to the workforce cost.

The thing is workers can do many things, and if you production line only occupies them @ 50% of their working time, this means they still have some time to convert into sweet added value (aka money).

In this post, we’ll review a technique called “Real Time Scheduling” but applied to prodctions line in order to determine the workforce costs linked to a production line.

“Real Time Scheduling” is a technique mostly used in embedded systems, electronics, … But any system involving some periodic scheluding can be treated as a real-time system to some degree, especially production lines !

So I’ll let you do some reading on real time system for definitions, but I think an example is worth more than (boring) definitions so let’s check out an example now !

Laying down the problem

First, let’s lay the basics: Imagine a production line with 2 machines :

CNC Mill and Lathe production line, with a metrology bench

  • A CNC lathe that produces 1 part every 120 seconds
  • A CNC mill that produces 3 parts every 3*115 seconds (345s)

Each process in the production line here is called a “Task”. The worker shall complete these these task whilst meeting the requirements. The more tasks they are and the longer they get, the more will our worker get occupied.

The project requirements are to produce a part every 140 seconds1, so we are good on this part and the technicians did a great job. Accounting for that, we can lay our strict requirement for scheduling to :

  • 1 part every 140s for the lathe
  • 3 parts every 3*140=420s for the mill

We’ll call these “Periodicity” from now on.

A these are the strict deadline we’ll have to meet everytime. This means that we have some margin to operate on the machines (load a part, clean the machines,…) :

  • We have 140-120=20s of margin for the lathe
  • We have 420-345=75s of margin for the lathe

We’ll call these “Deadlines” from now on. This is the MAX time it will have to take for us to load a part before we cannot meet the requirements anymore, as the machninning operation is fixed-time, as well as the 140s requirement.

Let’s now record the time it takes to load the lathe and the mill :

  • 15s for the lathe
  • 45s for the mill

Good ! we fit our deadlines !

We’ll call these “Wort Case Execution Time (WCET)” or “Capacity” from now on. This is the time it takes to complete a task.

We now consult the metrology guys to know how much time controlling a part will take, and at what frequency we’ll have to control them, here is what they tell us :

  • It takes 5mins maximum to control a part (important to get the worst case scenario !).
  • We need to check 1 part every ten.

So we come up with another task :

  • Perform metrology checks once every 20 parts (so once every 140*20=2800s) for 5 minutes (300s).

And we are done ! let’s recap all of this data in an spreadsheet.

The metrology part has no deadline as it’s just about getting 1 part done everytime.

Tasks recap

Here is a recap, I also computed the % of occupation generated by each task through WCET / Periodicity.

Task Recap Spreadsheet

Quick “Hybrid” analysis to determine the occupation

So now we can already know that our operator will have ~33% of its working time dedicated to this production line by summing the occupation of each tasks.

BUT Here we have a pretty specicial system as it is a human being ! Which does not operate with 100% efficiency. Somtimes we think, sometime we get a cofee, a sip of water or go to the toilets…

To take all of this into account, the industry already developed a metric called OEE (overall equipement efficiency) and it sits at around 80-85%.

This metric si valid for a specific task but given the fact we have pultiple task changes, we go for the lower bracket : 80%. Aplying this metric to our worker occupation, we get :

~33% / 0.8 = 40% real occupation.

Technically, the WCET already takes account of the OOE metric, or it may not, it heavily depends on the way we measure the timings whilst testing. I this scenario, I choose to take it into account for this broad estimate.

Determine feasability

Now, we can’t really chage a system @100% and expect it to work. According to the Liu and Laylang formula, if you have more that 1 task (which is the case in most of th case), you have to use this formula to determine the upper limit of the occupation for our system to work (use light mode if you have trouble seeing it with dark background):

Liu and Laylang formula

Or you can simply use this convinient table :

liu and laylang table

In our case :

(pseudo-code)

Real_occupation = 40%
Max_occupation = 77.9%
Real_occupation < Max_occupation

(Our production line can run !)

Simulate occupation

Using the cheddar simulator, we are able to simulate our operator’s journey in the production line and see how he will (more or less) operate on the production line and see if he has free & usable time to work elsewhere.

The previous calculation were estimates but here, we could add a very precise description of How many machines the worker will operate on and adding a bit of realism by adding “commute” times to each WCET.

First, let’s simulate our first scenario and see what we can do from here. (you can find a detailed tutorial on how to use chaddar here, ignore the electronics stuff by not setting it and you’ll be good to go).

POINT OF INFORMATION : In my simulation, everything is the same as in the spreadsheet, except I set the start time of the Milling to 20, as the worker will initialy strat loading the mill after loading the lathe. Also, I do not set the priority as I use a “Dealine Rate Monotonic scheduler” (Which just simulates doing whatever is the most urgent by deadline to do first, and stop whatever we did to do whatever has a shortest deadline). You can do further reading on the cheddar website. If you want to take OOE into account, you want want to modify the WCET here accordingly. I chose not to for this second example.

In order to simulate the time it takes to get from a machine to another, I add 3seconds to each WCET.

Simulation results of worker occupation on the production line

As you can see, our worker is doing great, and he even has time to spare towards the second half of this simulation !

Adding workloads on the worker

We saw that our worker will have some free time according to the simulation. Let’s consider ths new (slightly modified) scenario :

Added machine for worker

Let’s say another line needs some help to load some bulk material into machines once in a while. Instead of hiring a new employee, let’s see if our worker could handle this task :

  • Load bulks into machines in an other line
    • 30s WCET
    • Every 10minutes (600s)
    • Has to be done within 2minutes (Deadline) otherwise this other line stops by lack of bulk material to process. (120s)

Here is the new simulation result :

Worker load added occupation simulation img

We see our worker is very busy at the beginning ! Given the facts that they are deadlines, the worker might want to dalay the “part control” task and organize himself a bit differently using the spare time he has. ut we now know it’s doable !

You can now play around with the scheduler and set priorities to the task in order to see on different organizations would affect the worker.

Conclusion

We now have a very interresting tool to determine our worker dedication to a production line to enhance our cost estimates and planification of the worforce.

This real time analysis tool was meant for very accurate system, so there is still room for interpretation and tweaking for our application.

Note that the example given above is just an introduction and only works for simple exmaples were pericicites and cycle times are asseted to be the same for each macine. If this approximation does not fit your use case, contect me for more infrmation on how to accurately estimate the actual line periodicity and thus : worker occupation AND real cylcle time.

This post was meant to introduce the reader to this tool. Similar solutions include the Cycle diagram which is kind of an old-scool forgetten tool that does not even have an english wiki version.

If you need clarifications, do not hesitate to contact me, or leave a comment below.

  1. Calculation based on the number of parts, the number of real worked hours, etc… (Out of the scope of this post) ↩︎

This post is licensed under CC BY 4.0 by the author.