Skip to Main Content
We present an architecture that supports reconfigurable software construction. In this architecture, the controller software consists of a set of well-defined components and a set of behavior specifications. Each component is modeled with event-based external interfaces, a control logic driver and service protocols. Behaviors of components and their integration are modeled as finite state machines and nested finite state machines. The behaviors of software can be specified in Control Plan programs and executed by control logic drivers at run-time. Such software supports executable code-level reconfiguration as well as remote behavioral reconfiguration. Reconfiguration with heterogeneous implementations and vendor-neutral products is also supported. Our evaluation of the motion control software for a milling machine controller demonstrated that the software constructed with this architecture has high reconfigurability and low development and maintenance costs.