- Orchestra Control Engine
Orchestra Control Engine is a suite of software components (based on Linux/RTAI) for the planning, development and deployment of real-time control applications for industrial machines and robots.
Orchestra Control Engine has been developed by Sintesi SpA in collaboration with some of the most important international industrial companies in the field of robotics and production systems in partnership with the Italian National Research Council.
Sintesi SpA is a company that develops mechatronic components and solutions; it is specialized in the measurement, control and design technologies for robotics and production systems.
Orchestra Control Engine is a highly customizable and flexible tool, offering open and extendible solutions, equipped with components supporting the user for the development, debugging and testing of control applications.
Orchestra Control Engine is innovative because it is:
- Open, since it is based on an open source framework that allows to interface with external and not pre-defined entities in easier way.
- Modular, since it gives the possibility to reuse already developed algorithms by dividing them in different functional units , as well as to modify arbitrarily the control scheme without any imposed limit;
- Distributed, since it allows to run the software on different and remote hardware resources far for each other until several hundred meters;
- Scalable, since it makes possible to solve problems of very different complexity by means of one single tool choosing the suitable hardware in terms of cost and performance for a particular application (e.g.: embedded low-cost or multi-core ultra-performing solutions);
- Reconfigurable, since it allows to modify the system parameters both offline and at runtime, in order to quickly change the system behaviour;
- The visual approach of its development environment.
These features are the result of the synergy among all the components of the Orchestra suite.
The hard real time behaviour of Orchestra is provided by Linux/RTAI that, thanks to its "open source" philosophy, allows the user to bring all the necessary changes in order to fit the system to the desired requirements. moreover, the non hard real time components of the suite are also intended for platforms different from Linux, such as Microsoft Windows or Macintosh.
- Orchestra Core
A hard real time multithreaded engine which is able to exploit multicore/multiprocessor architectures and it allows to manage control applications for machines and robots. The overall control scheme is composed of empty boxes called modules that can be filled in with more or less complex algorithms according to the requirements of the controlled process and are dynamically loaded by the runtime engine. The user can fix the connections between the modules according to anyhow complex topology, can choose to use several modules with the same functionality or to implement more parallel loops.
- Orchestra Run Time Manager
It manages the execution formalities, the priorities, the multithread and multiprocessor operation. It is constituted by templates that define the thread typologies according to the execution formality and from a part that manages the various typologies of POU (Program Organization Unit) and the different appeals of this last.
- Orchestra Logic Programming
It supports the user in the realization of discreet logic programs. It allows him/her to use the five contemplated languages by the IEC 61131 norm, but also to develop application in C/C++ language which will be managed and performed by Orchestra Run Time Manager.
- Orchestra Path Programming
It supports the user in the writing of programs of movement and workmanship mechanics. It offers the possibility to edit part program (piece manufacturing programs) according to the international ISO-DIN 60025 standard and the American EIA RS274 D standard. It provides the input for a modular interpreter for the part programs elaboration, which will on their turn provide input for the Motion Control Loop in execution on OrchestraCore.
- Orchestra Designer
A Java IDE whose purpose is to support the user in the development of motion control applications, in such a way as to allow him/her to exploit all the available potentialities in an open architecture. From here, in fact, one can enter a set of independent environments and with different functionalities that allow to develop and to fill in new modules, providing the possibility to use templates capable of driving the user in the writing and correctness of the code, to draw the control scheme by adding and shaping blocks, testing every single module independently or the whole control scheme and to obtain automatically XML configuration files for each module and for the control loop.
- Orchestra Builder
A software tool that allows the automatic generation of OrchestraCore compatible modules starting from Simulink models. OrchestraBuilder permits the generation of a setting function, in which the areas of memory for every parameter used in the Simulink model will be defined. It makes possible the generation of an initialization function, in which the control system parameters will be loaded in memory by the data structure you previously built starting from the xml file. Besides, it allows the generation of a step function in which the code to perform will be encapsulated at every stage in the real-time module execution. This function encapsulates the logic of operation of the module.
- Orchestra HMI
It's a Java application (therefore a cross-platform one), that makes it possible to screen and to interact with the different entities of a control network. OrchestraHMI has an easily customizable graphic interface according to the demands of the user and it can run on any common PC, also endowed with a Touch Screen. OrchestraHMI makes the user authentication possible (also of different typology and with different permissions), as well as the execution of processes, the CN configuration and the planning of the production island, command and screening of its operation, the starting and editing of motion programs. OrchestraHMI provides the visualization of signals coming from an OrchestraCore or an Orchestra Run Time Manager by means of graphic controls (indicators, 2D plots, LCD displays) and the 3D visualization of machines and anthropomorphous manipulators.
- Orchestra Library
A set of modules for control, the management of trajectory, kinematics, the integration with information coming from additional sensors, the interfacing with external entities such as machines, robots, sensors and DAQ boards. Orchestra lets the user the choose to make use of modules, attaining them from OrchestraLibrary, or to develop them from scratch, and then integrate them easily in a control architecture.
Orchestra Control Engine is a suite for the customizable and flexible control: using the components in different combinations, it is possible to realize several different solutions that allow the management of control and the functionalities satisfying the specific user’s demands.
- Orchestra Motion Control Framework
Orchestra Motion Control Framework is the basic solution for the development of applications for the Motion Control on which the integrator can use the fittest modules to his/her own demands either by choosing among those already available or by creating them with the support of OrchestraBuilder and OrchestraDesigner.
OrchestraCore allows the periodic execution in hard realtime on systems RTAI Linux of several control algorithms, which are described by a logical scheme composed by modules whose number and whose relationships are determined by the same integrator.
A possibility is given to use the hardware multiprocessor/multicore calculation power thanks to the individualization of parallelisms between modules and following execution multithread of the interested modules.
The multirate/multiprocessors functionalities allow to reduce the general elaboration time of the control cycle, thus allowing to implement algorithms of control to more elevated frequencies and/or to use more refined algorithms and complexes.
The modules can be filled out in "debug" modality, to train additional verifications to useful runtime during the phase of development and test, or in "release" modality if there’s no need to train these verifications.
Every module can have a whatever 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 file XML while the values of the parameters can be changed to runtime.
- Orchestra MultiPLC
Orchestra MultiPLC is the complete solution for the development, the management and execution in real-time of one or more user programs of logical control. The execution of a control application can be divided into one or more programs and functional blocks, in such a way as to guarantee a modular approach and therefore the reusability of the code.
The user can develop the control applications in one of the languages of the norm IEC using the Logic Programming, or he can write the algorithm directly in C language, and embedded it in the Run Time Manager manually.
The Logic Programming helps the user in the application development providing debugging funcionalities. Moreover, to ensure software portability, it can translate the application program into XML file, conforming to the PLC Open schema.
Every control module, in accord with the IEC 61131 norm, is embedded in a task characterized by parameters that define the execution modality. Every task can be performed with a different priority and also with a specific period of execution in the case of periodic task. It is also possible to extend the execution modality inserting new typologies of tasks.
The Run Time Manager allows to realize, on a common Pc, a Multi PLC system with characteristic multitasking. The user is able to process' variables through the OrchestraHMI, as well as to visualize possible error and diagnostic messages.
Such architecture of control can work both in stand alone modality and integrating its own functionalities within a numerical control architecture. The perfect integration of the logical functionalities with those of motion control allows to reduce the components of control.
Orchestra MultiPLC it is composed of Orchestra Run Time Manager, Orchestra Logic Programming and OrchestraHMI.
- Orchestra Full for Numerical Control
Orchestra Full for Numerical Control is the solution that allows to realize the functionalities of numerical control .
Apart from Orchestra Motion Control Framework, OrchestraMulti PLC, and from the base components of the platform, this solution is made up by some dedicated modules:
OrchestraGCode interprets the program G-code received by the HMI: if the G-code instruction results to be an instruction of movement, it sends it to the MotionSupervisor, otherwise the interpreter will write to the software unity to which the execution of the instruction has been assigned.
MotionSupervisor is a module which acts as an interface between the Motion Control Loop and the functional elements of higher level (Orchestra GCode and the ControllerSupervisor, as well as possible Logical Control Loop). It has the task to select the interpolator according to the planned operation modality: automatic or jog.
The information on the movement modality is provided by the ControllerSupervisor. In case of movement in jog, it also provides the number of axes to moves, direction, feed rates. In case of automatic and semiautomatic modality the MotionSupervisor will ask for the instructions of movement to the G-Code interpreter and will allow the switching among different interpolators typologies.
The MotionSupervisor also acts as a collector of all the error messages coming from the modules of the MotionControl Loop and sends them to the ControllerSupervisor.
ControllerSupervisor centralizes all the information related to the state of the whole system, it receives the commands coming from the HMI and from the Teach Pendant and it picks up the information about their state coming from the 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.
The error messages are sent to the HMI to be shown to the operator. In case of local errors restoration procedures are foreseen to implement the components in which the error takes place. For those conditions of error that cannot be resolved at local level, instead, the ControllerSupervisor contemplates some procedures of safety or it asks for the external intervention of the operator.
- Orchestra for Open Robot Controllers
Orchestra for Open Robot Controllers it is the solution that allows the rapid prototypation of control algorithms for industrial robot. This allows to rapidly test the feasibility of realization of new ideas so developing innovative products and shortening the time for it to be launched on the market.
Moreover, Orchestra for Open robot controllers allows the integration of particular sensors and possible functions of motion control, additional to the basic ones.
Orchestra For Open robot controllers is composed of a set of modules contained in Orchestra Core that allows the PC the interfacing with different industrial controllers.
The performances of this solution depend on the opening functionality of the Control Robot. Generally, the control Robot performs the part of realization of the movement, whereas Orchestra manages the logic of control and the generation of trajectory.
Orchestra Control Engine
Version Release date v1.0-beta1 2007, Jul 16 v1.0-beta2 2007, Oct 9 v1.0-beta2.1 2007, Oct 29 v1.0-beta2.2 2007, Nov 15 v1.0 2007, Dec 21 v1.0-1 2008, Jan 28 v1.0-2 2008, Apr 1 v1.1 2008, May 22 v1.5 2008, Jul 22 v1.5-1 2008, Oct 20 v1.5-2 2008, Oct 28 v1.5-3 2008, Nov 12 v2.0 2008, Dec 19 v2.0-1 2009, Feb 20 v2.0-2 2009, Apr 10 v2.0-3 2009, Jun 3 v2.5 2009, Jul 31 v2.6 2009, Oct 30 v3.0 2010, Mar 30 v3.0-1 2010, Oct 5 v3.5 2010, Dec 21 v3.5-1 2011, Jan 26 v3.5-2 2011, Jul 27
Wikimedia Foundation. 2010.