Constellation Software Development System
The machine control systems are implemented with RTI's Constellation software development system (except the fast prototype). There are other UML based tools but Constellation is especially designed for implementing control systems.
Constellation provides a framework for building control systems and other periodically executable software components. Components, which are processing continuous signals, are executed at specified frequency. The programmer does not have to specify the execution order since the tool automatically optimizes the execution order. In addition, the control system can be reconfigured on the fly by activating and deactivating controller's components. This kind of "mode change" is needed for example to transition from manual to automatic control.
In addition to continuous signals, Constellation provides also framework for processing discrete events. UML-style state machines can be used for event processing. State machines react to events by executing state transitions, if a suitable transition is available. State transitions can also be triggered by changes in continuous signals, in which case the transition conditions are evaluated periodically. Because time can be handled as a continuous signal, implementing time-dependent state transitions is very easy.
Constellation encourages component reuse. The components are loosely coupled by well defined interfaces. Because components are connected using interfaces, components can be connected to each others in countless ways i.e. it is possible to build fundamentally different control systems from the same set of components. Creating new interfaces and adding them to new components is very easy thanks to the graphical tool. New components can be created by combining existing components (composite components aka cogs), drawing state machines (finite state machine components aka fsms) or by writing C++ code (atomic, dataflow and state transition components, aka atcs, dfcs and stcs, respectively).
Because Constellation is based on C++ programming language, it creates relatively efficient and fast code. Constellation can be used in Windows (Microsoft's compiler) and Linux operating systems (gcc). It can also be used to create programs for example to VxWorks operating system. Constellation supports various processor architectures (X86, PPC, MIPSR4, M68020, SPARC) but it is not possible to run the created programs with very modest hardware.