This page (and the three following pages) describe the control algorithm of the Production 2000+ transportation system [Bussmann 2001c]. More precisely, they describe the computations of each agent and the interactions of the agents necessary to control the overall flow of material in the Production 2000+ system. This page starts with the description of a workpiece agent trying to get its workpiece processed. Another page describes the computations of the machine agent and in particular the buffering mechanism. An important aspect of the interaction between workpiece and machine agent, namely the avoidance of deadlocks, is described on a separate page. Finally, the computations of the switch agent are described here.
Workpieces are loaded into the transportation system by putting new workpieces onto a conveyor leading to one of the shifting tables. Once a new workpiece passes an ID reader, the switch agent sends a message to the workpiece agents which then realize that this workpiece is new (its ID is unknown) and therefore assign a workpiece agent to this workpiece. The assigned workpiece agent then loads the processing graph for this workpiece. The processing graph is stored in a data base under the workpiece ID as the key. The workpiece agent may then start to allocate machines for processing the workpiece.
The switch agent is configured to know that the entry on which the new workpiece arrived is a loading entry. In contrast to its normal behavior (see here), the switch agent only moves this workpiece to any exit once it knows the next goal machine of this workpiece. As a consequence, a workpiece enters the system only once it has been registered in some machine buffer (for the buffering mechanism see here), namely in the entry buffer of the first machine going to process the workpiece. Thus, any workpiece in the transportation system is included in the machine buffers and the transportation system can never overflow.
A workpiece agent knows the processing graph of the workpiece, i.e., it knows which processing operations should be performed on the workpiece in which order. It also keeps track of the operations already performed and the operations to be performed next.
With this knowledge, the workpiece agent tries to get the processing operations done. To this end, it allocates a machine which can perform the next set of operations on the workpiece. Note that the workpiece only allocates the next machine able to process the workpiece. There is no planning ahead to allocate a sequence of machines that could process or even finish the workpiece. The approach to only allocate the next step is known as late commitment.
The advantage of late commitment is that workpieces do not have to re-plan! If the workpiece has already allocated the next three machines, but once it arrives at the third machine, this machine has a much higher load than another machine (due to machine failures), it has to re-schedule in order to keep up the performance of the system. With late commitment, the workpiece only chooses the machines at the latest moment possible, and that is the moment it leaves the last machine and has to tell the shifting table which is the next machine (see below). At that moment, it can take into account the current capacities and loads of the machines and choose the best machine from its point of view.
Of course, late commitment (as used by Production 2000+) is only a good design choice if a local decision is not much worse than planning ahead. But this is the case for Production 2000+. Production 2000+ was designed for large-series manufacturing in which a single workpiece must be finished at some time, but not in the shortest time possible (which might be the case for job-shop production). (There is more to late commitment in general and to late commitment in Production 2000+ in particular, which I might add some time in the future, or maybe not.)
The allocation of the next goal machine is carried out by a simple first-price, single-round auction. The auction protocol involves three steps: the call for bids, the bidding itself, and the awarding.
The allocation protocol is always initiated by the workpiece agent: It determines the next operations to be performed on the workpiece and all machines which are configured to perform the operations (e.g., by looking into a static configuration list). The workpiece agent then sends an invitation to bid to all these machines. This call includes a specification of the operations to be performed.
If a machine agent receives an invitation to bid, it checks whether or not it is able to perform at least one of the operations requested (its current capabilities may differ from the configuration list). If this is the case, then the machine agent issues a bid; otherwise it simply ignores the call. Short-term disturbances of some of the machine's operations are also ignored, i.e., the machine agent bids even if it is currently broken down. This is because the subject of the negotiation is a future allocation of the workpiece's operations and the current situation obviously does not provide much information about a machine's state when the workpiece enters the machine. Note that this assumes that disturbances are removed shortly, which is the case in large-series manufacturing.
The machine agent issues no bid without making sure that it is actually ready to accept a new workpiece: It therefore checks whether the virtual buffer has already reached its limit (cf. the description of the machine). If this is the case, then it does not answer the call. Otherwise, the machine sends a bid including the following information:
The workpiece then collects all bids for a specific call. If there is no bid at all, then the workpiece issues another invitation to bid, continuing with the first step of the protocol (assuming that a machine agent was temporarily unavailable). Otherwise the workpiece compares the bids and awards the best bid. For this, both components of a bid are relevant, with the current size of the machine's virtual buffer having the higher priority. The lower the current size of the virtual buffer, the better. The more operations the machine can perform, the better. The workpiece awards the bid which is best in this sense. The awarded machine then includes the workpiece in its input buffer (cf. the description of the machine).
Usually, a number of auctions of this kind for different workpieces take place simultaneously, even in an interleaved manner. Thus, a single machine may participate in more than one auction at a time.
After allocating the next goal machine, the workpiece agent interacts with the switch agent in order to move the workpiece to this goal machine (for details see the description of the shifting tables). Once the workpiece has arrived at the goal machine, it is eventually processed by the machine. The machine agent then informs the workpiece agent once the processing has been finished and the workpiece has been put onto the output conveyor (cf. the description of the transportation system). At that moment, the workpiece agent starts again to find a new machine. If all operations have been performed on the workpiece, the agent allocates one of the unloading stations of the production system (which can be viewed as special kind of machine) and the workpiece is eventually being unloaded from the production system.