DesignFest Home


Control of a Flexible Manufacturing System

[ Home | Problem Collection | Results for this problem ]

Prepared by

A. Aarsten, D. Brugali, and G. Menga (Dept. of Automatica & Informatica, Politecnico di Torino, Italy)


Use Cases

Design Problem

Possible Levels of Simplification


The FMS Structure

A Flexible Manufacturing System (FMS) is a computerized factory production entity, composed of numerically controlled machines, an automatic inventory system for storing raw, temporary in-process, and finished pieces, and an automatic guided vehicle system (AGV) for moving pieces, which can operate on different types of pieces.

The Production Problem

The production is planned at factory level and is represented by lots assigned to the FMS (a lot is an administrative entity indicating a group of identical pieces to be manufactured together.) Several lots of different types of pieces can be in production at the same time in a given FMS.

Each type of piece requires a specific ordered sequence of operations. A machine can perform one or more of those operations, but only a single operation on one piece at a time. Each operation takes a certain amount of time.

The Production Process

A network connects the FMS computer to the machine, inventory, and AGV controllers. The real-time dispatcher of the FMS assigns pieces to the machines as soon as they become idle, and issues requests of missions to the AGV system, monitoring the shop-floor.

Pieces are taken one at a time from the input store and transported to an idle machine where the first operation is performed. As soon as the operation is finished, the piece is evacuated from the machine and transported elsewhere; either to another machine for performing the next operation or to one of the temporary stores. Machines are assigned to a waiting piece (if any) as soon as they become idle. A machine is idle when it is not performing an operation on a piece and the last piece operated on has been evacuated.

The cell control interacts with the AGV through requests of the type "pick up piece X from A and move it to B", where A and B can be one of the stores or the machines. For our purposes (as is the case in a small FMS), the time needed to serve a transport request is small relative to the time needed for a machine operation. When the destination is a machine, the transport request is not made until the machine is idle and the piece has been assigned to it.

Example: A FMS for Manufacturing Mechanical Parts

As an example, we describe a simple FMS for manufacturing cylindrical mechanical parts, consisting of :

  1. Two turning machines, M1 and M2, and a drilling machine, M3, each of which can work on a single piece at a time. The machines can operate in parallel.
  2. There are two different turning operations, TO1 and TO2, and a drilling operation, DO1. M1 and M2 can both perform the operations TO1 and TO2; M3 can perform the operation DO1. The two turning operations take 30 minutes to complete; the drilling operation takes 10 minutes.
  3. Two types of pieces, TP1 and TP2. TP1 requires the operation sequence <TO1, DO1>, and TP2 requires the sequence <TO2, DO1, TO1>.
  4. The store for raw pieces: Store_in.
  5. The store for finished pieces: Store_out.
  6. The store for temporary in-process pieces: Store_tmp. It can hold up to 50 pieces, each of which can be recovered individually from their place in the store.
  7. The transportation system with three carts, each of which can carry a single piece and is equipped with a robot arm that loads or unloads the cart on command from the FMS computer. The transporation system connects all machines and stores to each other.
  8. There are two different lots, the first consisting of 10 pieces of type TP1, the other of 5 pieces of type TP1 and 5 pieces of type TP2. The lots are processed simultaneously by the FMS.

The controller/dispatcher knows at all times the state of all of the machines, the places in the stores and the carts (free or occupied, and if occupied, by which piece) as well as the position and state of all the individual pieces. Before the production run, the controller is informed of the sequence of operations required by each type of piece, and the configured operations for each machine.

The dispatcher calculates the next operation to be performed for each piece and on which machine, requests that the transportation system move the piece to its next destination, synchronizing the loading and unloading operation of the carts.

Use Cases

Use Case #1: The Drilling Machine Has Finished an Operation on a Piece

Actors: Drilling Machine, Dispatcher, Piece, Transportation system, Cart

When the Drilling Machine M3 has finished the operation DO1 on a piece, it notifies the Dispatcher. The Dispatcher makes a request for a cart from the Transportation System for evacuating the piece from the Drilling Machine.

When the cart has evacuated the piece, the machine enters the IDLE state. The Dispatcher then checks if the piece is finished.

If the piece is finished, it is transported to Store_out; otherwise, the Dispatcher checks if there is an idle machine capable of performing the next operation on the piece.

If an idle machine is found, the piece is transported there; otherwise, the piece is moved to the temporary store Store_tmp.

Use Case #2: The Drilling Machine Becomes Idle

Actors: Drilling Machine, Dispatcher, Piece, Transportation system, Cart

When a piece is evacuated from the drilling machine M3, the machine becomes idle and it is ready to perform an operation on another piece.

When the machine enters the IDLE state, the dispatcher is informed and checks whether a piece (in the store for raw pieces Store_in or in the temporary in-process pieces Store_tmp) is waiting for the next operation on the drilling machine M3.

When the dispatcher find a piece Pw waiting for an operation, it requests the Transportation System for a cart; the Transportation System is then assigned the task of transporting the waiting piece Pw to the drilling machine.

When the Transportation System has accepted the transportation, the drilling machine exits the IDLE state.

The Design Problem

Design the database and the real-time dispatcher (also called cell controller) for a generic FMS manufacturing mechanical parts.

Possible Levels of Simplification

The specification can be adjusted for different levels of complexity applying one or more of the following constraints:

Last updated by Torsten Layda, SWX Swiss Exchange, DesignFest® Webmaster.