identified and thus algorithms are refined. The modules can be "debugged" as they are completed if specific verifications are programmed. Alternatively, the modules can be completed in "release" mode if no special verifications are required. The modules be completed with any number of entries, parameters, states and vectorial output in double precision floating point, as well as states of any other type. These characteristics are codified through XML files. Orchestra MultiPLC Orchestra MultiPLC (multi programmable logic controller) is composed of Orchestra Run Time Manager, Orchestra Logic Programming and OrchestraHMI. It allows the execution of a motion control application as one or more programs or functional blocks which may be reused. The controller's open schema accepts and translates XML files. The functional blocks can be prioritised within a series or programmed to operate periodically. New tasks may be added to the application. Orchestra Full for Numerical Control Orchestra Full for Numerical Control consists of Orchestra Motion Control Framework, OrchestraMulti PLC, and some other specific components: OrchestraGCode interprets the G-code program received by the HMI: if the G-code instruction is one of motion, then it is sent to the MotionSupervisor, if not, OrchestraGCode will write the instruction to the appropriate software. MotionSupervisor acts as an interface between the Motion Control Loop, the Orchestra GCode, the ControllerSupervisor and the Logical Control Loop. Using information from the ControllerSupervisor, it selects either automatic or jog mode. In jog mode, MotionSupervisor provides axes to moves, direction and feed rates. In automatic and in semiautomatic mode, instructions on movement will come from the G-Code interpreter. The MotionSupervisor also collects error messages coming from the MotionControl Loop and sends them to the ControllerSupervisor. ControllerSupervisor centralizes all the information related to Orchestra Control Engine. It receives information from the HMI, the teach pendant and other software components. Such information is sorted to the other components even if direct channels of communication among the various components for the specific information interchange are foreseen. ControllerSupervisor sends error messages to OrchestraHMI. Local errors are handled in the software components in which they take place. Errors beyond the local level are handled by the ControllerSupervisor instigating a safety procedure and or showing the error to the user. Orchestra for Open Robot Controllers Orchestra for Open Robot Controllers allows the feasibility of innovative industrial robot algorithms to be tested. It can integrate advanced sensors and functions. Its interface with a personal computer is via