Small and medium machining shops are often arranged as job-shops. In a job-shop the production is usually done in small batches, and the machines are arranged in functional units, or cells (milling cell, drilling cell, etc). Each part or product to manufacture needs to follow a sequence of operations (a route) to be performed in different machines.
A production schedule defines, for each part, (i) the assignment of operations to specific machines, (ii) the sequence of operations in each job, and (iii) the sequence in which each machine needs to process all the operations assigned to it.
Traditionally the production schedule is created manually for one week or even longer. This is because it takes a long time to check all the necessary information: sales orders, due dates, priorities, inventory, worker holidays etc. As with every manual job, there is ample chance for human error.
These schedules are static, meaning that they take no advantage from real time data available on the shop-floor, and therefore cannot react to disruption events like new priority orders or machines breakdowns, or simply adapt to the natural variance in run and setup times. They also are unable to offer any insight around the impact that those events will have in the future production.
Real-time, or dynamic scheduling, refers to those schedules that are able to read and analyse real-time information from the ERP and MES, and adapt in a short time frame to changes and events, and are able to provide insights into the future impact of those changes, such as expected variations in Key Performance Indicators (KPIs).
State of the Art/Maturity
The problem of scheduling the production in a job-shop is well-known to be a very difficult problem to solve. From an academic perspective, the job-shop scheduling is one of the old-time favourites' to research, due to its high complexity. Many different algorithms have been applied to scheduling a production line, from constraint programming to metaheuristics. Today still many different approaches are being applied to this problem.
From a commercial viewpoint, very few off-the-shelf tools provide this kind of dynamic scheduling. This is due to the high variability of use cases. First, a job-shop is very sensitive to small changes. Second, due to the very specific rules that each job-shop applies, that are very different and can’t be accounted for in commercial packages, with the result of underperforming schedules or forcing the company to do things as expected by the software, and not the other way around. Third, to provide optimal schedules in real life manufacturing a true multi-objective algorithm must be applied.
A production schedule can be generated to optimise many different KPIs: minimise idle time, maximise throughput, minimise delays in shipping dates, etc Which one to prioritise at any particular time might change depending on business decisions.
Finally, though the latest scheduling algorithms and Artificial Intelligence can take away much of the difficulty of the planning process, there will always be the need for a human to participate in the process. The tools used for real-time scheduling must be able to ease the collaboration between the man and the software, providing the operator with a clear, easy to understand view of the current state of the production process and of the implications of changes in the schedule. It must also provide mechanisms for the human to incorporate his own expert knowledge into the creation of the schedule, by allowing him to modify the schedule and insert new constraints.
Practical applications for Machining
In summary, a real-time scheduler can:
- Save time in the planning department
- Reschedule based on real-time information, and in seconds.
- Provide a better awareness of current and future production schedule
- Optimise the jobs according to the most appropriate KPIs in every situation.
- Provide visibility on the impact of disruption events on the schedule.
- Provide what-if capability for planners and managers