OrchestraCore is 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 dinamically 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 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 supports the user in the realization of discreet logic programs . It allows him/her to use the five contemplated languages by the IEC61131 norm, but also to develop application in language C/C which will be managed and performed by Orchestra Run Time Manager.
Orchestra Path Programming 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.
OrchestraDesigner is 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 configuratio files for each module and for the control loop.
OrchestraBuilder is a sw 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.
OrchestraHMI - The Human Machine Interface - is 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.
OrchestraLibrary is 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.
Schematic Represenation of Orchestra Control Engine 