Workcell Software


The flexibility of an agile manufacturing system is provided largely by its software. However, this flexibility does not come without careful design. Although software is inherently easier to change than hardware, the structure of a software system can degrade after repeated modification, leading to poor reliability and increased maintenance-costs. In designing the workcell control software, we have employed software engineering methods and tools that support the principle of design for change. In particular, our latest design is object-oriented, that is, it is based upon identifying the objects of the system, which are those entities having a state and a behavior. Physical devices, abstract data structures, and entire subsystems are modeled as objects that provide a well-defined set of services whose implementation is encapsulated and hidden.

Object types or classes are defined using the C++ class construct; services correspond to member function calls. New classes are derived from existing ones by adding new services or by overriding the implementations of existing services. Object orientation facilitates maintenance because the implementation of a class can be changed without affecting client code, which uses the class's services, and because a derived class can be used wherever its parent class can be.


Software class diagram

In addition to satisfying the requirements of our particular manufacturing application, we wish to specify software design components that might prove useful in a variety of agile manufacturing applications. Hence, we have sought to identify design patterns for agile manufacturing. A design pattern is a group of communicating objects or classes which together represent a reusable design element that is applicable, after some specialization, to a variety of systems. So far, we have identified design patterns for such activities as overall system control, communication between system components, provision of parts and assemblies, scheduling of system tasks, and error handling.


The following paper contains more information:

A Flexible Software Architecture for Agile Manufacturing
CAISR Technical Report TR-96-106, 30 September 1996.
Submitted to the 1997 IEEE International Conference on Robotics and Automation.

Last update: 1 October 1996

E-mail: rdq@po.cwru.edu