How it works

The LSS is a modularized Warehouse Control System. It typically sits between a Warehouse Management System (WMS) and the PLC’s that control the shuttles, like so:

LSS in between WMS and PLC's

However, other configurations are possible too.

The LSS consists of a number of modules.

  • The scheduler decides when to plan and start a new pallet move based on the orders received from the WMS.

  • The route planning module calculates a route for pallet moves.

  • The route execution module assigns cars to routes. It also splits each load-unload sequence into drive, load, and unload commands.

  • The deadlock mitigation module decides whether the assignment of a car to a route, or the execution of a command for a car, will lead to a deadlock.

The scheduler receives orders from the WMS. An order can be an input order for a pallet that has appeared at an input point, an output order for a specific pallet to a specific output point or group of output points, an output order for a number of pallets satisfying certain criteria including the sequence in which pallets need to be output, an order to move pallets to a staging lane, etcetera. The scheduler maintains a list of all pending orders, and periodically asks the route planning module to start new pallet moves.

The route planning module receives pallet move requests from the scheduler. A pallet move can be from an input point to a location in the warehouse, from a location in the warehouse to one or more output points, or from a location in the warehouse to another location in the warehouse. The route planning module takes into account various parameters like constraints on pallet placement, the filling degree of different parts of the warehouse, how busy different cars are, etcetera, with the aim of preserving warehouse performance not only now but also later in time.

A route is in essence a sequence of cars, each car taking a pallet from the preceding car, and handing it over to the next car in the sequence. The route execution module is responsible for assigning cars to routes. A car should be assigned to a route not too late, ideally it should be ready to receive a pallet before the preceding car is ready to hand over the pallet. But equally a car should not be assigned too early, because it would then be waiting idle for a needlessly long time before receiving the pallet. When two or more routes are competing for the same car, the route execution module needs to decide which route goes first. This would typically be the route that has been waiting the longest, but there can be good reasons to give precedence to another route, for example to benefit overall performance. Another reason could be to avoid a deadlock. Before assigning a car to a route, the route execution module asks the deadlock mitigation module if the assignment would cause a deadlock. If the answer is yes, then the assignment is not made.

When a car is assigned to a route, it should drive to the crossing with the preceding car, load the pallet, drive to the crossing with the next car, and then unload the pallet. Obviously these actions need be synchronized with the actions of other cars, to secure proper handover of pallets, but also to avoid collisions. The drive actions are split into smaller drive commands. Before executing a drive command, the route execution module checks whether this would cause a collision. It also asks the deadlock mitigation module if the execution of the command would cause a deadlock.

There are various strategies to deal with deadlocks. In general deadlocks can be mitigated through detection-correction, prevention, or avoidance. The deadlock mitigation module algorithm analyzes a command by establishing that there is no possibility that a deadlock will occur in the future if the command is executed, and thus avoids deadlocks. This makes the LSS particularly suitable for warehouses where prevention is not an option or too costly, e.g. a warehouse with conflicting material flows, like when input and output points are at the same side of the warehouse, or warehouses with few express lanes, forcing express lanes to handle bidirectional traffic.

Not all modules need to be used together. For example, if the WMS is able to do route scheduling and planning, one could only use the route execution and deadlock mitigation modules.

Particular attention must be paid to the handling of errors. When an error occurs the impact must be kept to a minimum. Pallets that are on a car at the time an error occurs and that cannot continue to their intended target, will be sent to a location in the warehouse so as not to clog up the warehouse with pallets stuck on cars. Pallets that can continue to their intended output point will then be re-routed. For pallets that cannot be re-routed an alternative pallet will be selected, if available and allowed by the WMS output order.