The high flexibility of the Production 2000+ transportation system also requires a more sophisticated control system. While control technology has produced very powerful tools for controlling the physical behavior of single units, such as shifting tables or loading robots, control technology (in 1997) was short of tools which direct the overall flow of material. Of course, a control system for the P2000+ system must control the physical movements of a single shifting table. But it must also tell a shifting table to which exit to move a workpiece. To add such an overall optimization capability, Mercedes-Benz in cooperation with Schneider Electric and Siemens Automation as well as the DAI lab of the Technical University of Berlin has developed an agent-based control system which extends the standard control system for the transportation system (for a list of people involved in the development of the agent-based system see here).
The agent-based control system of Production 2000+, also called KoWest (Kooperierende Werkstücksteuerung), consists of three types of agents:
The main task of each agent is described in the following. A detailed description of the actual algorithm for controlling the transportation system can be found here.
A workpiece agent represents a single workpiece and tries to get this workpiece processed. It is initialized with the required processing operations for this workpiece (which may differ from workpiece to workpiece), and continually tries to find a machine that is able to process the workpiece in its current state. To do so, it interacts with the machines to allocate the next machine and with the switch agents to be moved to the next goal machine (for details see here). Every time the workpiece has been processed by a machine, it checks the status of the workpiece to see whether there are still more operations to be performed on the workpiece, and, if so, it tries to allocate another machine capable of performing the operations. If not, the workpiece is done and is moved to an exit of the transportation system.
A machine agent controls the capacity of a machine. First of all, it offers the capacity of the machine in a resource allocation algorithm (for details see here). To do so, the agent knows the capability of its associated machine (three, four or five axes) and the current tool configuration of the machine. (Here, "knowing" means that the agent has this information in its local "memory", i.e., in its local database.)
Secondly, upon the arrival of a workpiece, the machine agent must compute the required machine programs to correctly process the workpiece. More precisely, the machine agent gives the list of the processing operation requested by the workpiece to another program which is capable of computing the corresponding programs (usually Numeric Control (NC) programs), which are then transmitted to the controller of the CNC machine.
Finally, the machine agent receives sensor information from the machine about the status of the machine and the workpiece. This enables the machine agent to inform the workpiece agent when processing starts and in particular when the processing has ended and the workpiece has left the machine.
A switch agent controls a shifting table in that it determines for each workpiece arriving at the shifting table to which exit it should be moved. To do so, it checks the exits of the shifting table (whether they are free or occupied) and communicates with the workpiece to ask what the next goal machine of the workpiece is.
Logically, each agent is associated with either a physical resource (machine or shifting table) or a workpiece. For a physical resource, it is technically no difficulty to also physically associate the corresponding agent with the resource. Usually, machines have their own industrial PC for controlling the movements of the machine. That is, the machine agent could "run on the machine". Similarly, shifting tables have their own controller (usually a programmable logic controller (PLC)), which could also execute the corresponding switch agent.
For the workpiece agent, this is more difficult. Workpieces are usually just a piece of metal (or some other material) without any IT processing capabilities. Thus, the workpiece agent cannot "run directly on the workpiece". To solve this problem, each workpiece is assigned an identification number (ID) which is read by each machine or shifting table the workpiece enters. The machine or shifting table entered then sends a message (through the associated agent) to the workpiece agent saying that the workpiece has entered the resource. Through these messages, the workpiece agent is thus able to keep track of its workpiece.
For the prototype, the ID was put onto the pallet to which the workpiece was attached. With the current RFID technology, it is certainly possible to fix the ID directly to the workpiece.
See the description of the installation of the prototype for more details on how the different agents were implemented.