Orchestra Control Engine

Last updated

Orchestra Control Engine is a suite of software components (based on Linux/RTAI) used for the planning, development and deployment of real-time control applications for industrial machines and robots.

Contents

Orchestra Control Engine has been developed by Sintesi SpA in partnership with the Italian National Research Council and in collaboration with international industrial companies in the field of robotics and production systems.

Sintesi SpA is a company that develops mechatronic components and solutions. It has specialized in measurement, control and design technologies for robotics and production systems.

Main features

Orchestra Control Engine is flexible because it can be customized. This is done visually. The solutions created are open (based on an open source framework) and are extendible. Modular components of the software allow a user to develop, debug and test control applications. For example, previously developed algorithms can be divided into functional units and reused indefinitely. All the units work together. The software can be distributed among various remote hardware devices which may be hundreds of meters apart. It also scalable in that it selects hardware which provides the best cost and performance for a particular operation. The system's parameters can be quickly reconfigured both on line and also at the time of a run.

Suite components

Linux/RTAI creates Orchestra Control Engine's hard real time behaviour. Its "open source" characteristics allow changes to fit the users' requirements. Non hard real time components of orchestra Control Engine can be used with non-Linux platforms such as Microsoft Windows or Macintosh.

Orchestra Core

A hard real time multithreaded engine operates in multicore/multiprocessor architectures. Within the scheme, modules can be filled in with more or less complex algorithms which control the process. The run time engine loads the modules. The user can adapt the modules to the topology. For complex topology, multiple modules can be used or parallel loops can be implemented.

Orchestra Run Time Manager

The run time manager controls the formalities of execution of the program; decides priorities within the operation; and manages the multi-thread and multiprocessor operations. It is made up of templates that define thread typologies according to the formalities of execution and from a part that manages the POU (Program Organization Unit).

Orchestra Logic Programming

The logic programming of Orchestra Control Engine assists in the use of the five contemplated languages of the IEC 61131 norm. It also assists in the use of the C/C++ language.

Orchestra Path Programming

The path programming of Orchestra Control Engine assists in the writing of movement and workmanship mechanics. Piece manufacturing programs (part programs) can be edited according to the international ISO-DIN 60025 standard and the American EIA RS274 D standard. It is also important for the interpretation of modules and in turn for the input which allows a Motion Control Loop.

Orchestra Designer

The designer is a Java IDE. It assists development of motion control applications for different environments. This involves completing new modules, using code templates, allowing the adding and shaping of new blocks and testing the modules both independently and in a control scheme. It also automatically provides XML configuration files for each module and for the control loop.

Orchestra Builder

The builder is a software tool that allows Simulink models to be automatically generated into Orchestra core compatible modules. It does this by making a definition for every parameter of the Simulink model. It can generate a function which initializes the loading of a newly developed control system and, it can generate the step function which holds the code for the logic of each module.

Orchestra HMI

HMI is a Java application (therefore a cross-platform one), that looks for and interacts with different parts of a control system. Orchestra HMI has a graphic interface (including a touch screen) which can run on any common PC. It can be customised to suit the user and provides user authentication. Orchestra HMI allows the user to CN configure and plan the production island and command processes such as the starting a motion program. The user can screen and edit processes. Orchestra HMI 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

The library contains sets of modules, information from sensors, interfaces with external entities such as machines, robots, sensors and DAQ boards.

Solutions

Orchestra Control Engine is a suite of programs. Using the various components in combination allows for flexibility. d

Orchestra Motion Control Framework

The motion control framework allows users to develop motion control applications by integrating the best modules for their purpose. The modules may be ones already available or those the user develops using the orchestra designer and builder facilities.

The modules can be run so that the process has multiple threads. Parallelisms are 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 OrchestraCore. Its function is generally one of realization of movement rather than the logic of control and the generation of trajectory.

Release history

Orchestra Control Engine

VersionRelease date
v1.0-beta12007, Jul 16
v1.0-beta22007, Oct 9
v1.0-beta2.12007, Oct 29
v1.0-beta2.22007, Nov 15
v1.02007, Dec 21
v1.0-12008, Jan 28
v1.0-22008, Apr 1
v1.12008, May 22
v1.52008, Jul 22
v1.5-12008, Oct 20
v1.5-22008, Oct 28
v1.5-32008, Nov 12
v2.02008, Dec 19
v2.0-12009, Feb 20
v2.0-22009, Apr 10
v2.0-32009, Jun 3
v2.52009, Jul 31
v2.62009, Oct 30
v3.02010, Mar 30
v3.0-12010, Oct 5
v3.52010, Dec 21
v3.5-12011, Jan 26
v3.5-22011, Jul 27
v3.62012, Jul 11

See also

Related Research Articles

<span class="mw-page-title-main">Programmable logic controller</span> Programmable digital computer used to control machinery

A programmable logic controller (PLC) or programmable controller is an industrial computer that has been ruggedized and adapted for the control of manufacturing processes, such as assembly lines, machines, robotic devices, or any activity that requires high reliability, ease of programming, and process fault diagnosis. Dick Morley is considered as the father of PLC as he had invented the first PLC, the Modicon 084, for General Motors in 1968.

<span class="mw-page-title-main">Embedded system</span> Computer system with a dedicated function

An embedded system is a computer system—a combination of a computer processor, computer memory, and input/output peripheral devices—that has a dedicated function within a larger mechanical or electronic system. It is embedded as part of a complete device often including electrical or electronic hardware and mechanical parts. Because an embedded system typically controls physical operations of the machine that it is embedded within, it often has real-time computing constraints. Embedded systems control many devices in common use today. In 2009, it was estimated that ninety-eight percent of all microprocessors manufactured were used in embedded systems.

Supervisory control and data acquisition (SCADA) is a control system architecture comprising computers, networked data communications and graphical user interfaces for high-level supervision of machines and processes. It also covers sensors and other devices, such as programmable logic controllers, which interface with process plant or machinery.

<span class="mw-page-title-main">Automation</span> Use of various control systems for operating equipment

Automation describes a wide range of technologies that reduce human intervention in processes, namely by predetermining decision criteria, subprocess relationships, and related actions, as well as embodying those predeterminations in machines. Automation has been achieved by various means including mechanical, hydraulic, pneumatic, electrical, electronic devices, and computers, usually in combination. Complicated systems, such as modern factories, airplanes, and ships typically use combinations of all of these techniques. The benefit of automation includes labor savings, reducing waste, savings in electricity costs, savings in material costs, and improvements to quality, accuracy, and precision.

A distributed control system (DCS) is a computerised control system for a process or plant usually with many control loops, in which autonomous controllers are distributed throughout the system, but there is no central operator supervisory control. This is in contrast to systems that use centralized controllers; either discrete controllers located at a central control room or within a central computer. The DCS concept increases reliability and reduces installation costs by localising control functions near the process plant, with remote monitoring and supervision.

<span class="mw-page-title-main">Control system</span> System that manages the behavior of other systems

A control system manages, commands, directs, or regulates the behavior of other devices or systems using control loops. It can range from a single home heating controller using a thermostat controlling a domestic boiler to large industrial control systems which are used for controlling processes or machines. The control systems are designed via control engineering process.

<span class="mw-page-title-main">Visual programming language</span> Programming language written graphically by a user

In computing, a visual programming language is any programming language that lets users create programs by manipulating program elements graphically rather than by specifying them textually. A VPL allows programming with visual expressions, spatial arrangements of text and graphic symbols, used either as elements of syntax or secondary notation. For example, many VPLs are based on the idea of "boxes and arrows", where boxes or other screen objects are treated as entities, connected by arrows, lines or arcs which represent relations.

<span class="mw-page-title-main">Electronic control unit</span> Computer that optimizes electron flow in land vehicles

An electronic control unit (ECU), also known as an electronic control module (ECM), is an embedded system in automotive electronics that controls one or more of the electrical systems or subsystems in a car or other motor vehicle.

<span class="mw-page-title-main">RTAI</span> Real-time extension for the Linux kernel

Real-time application interface (RTAI) is a real-time extension for the Linux kernel, which lets users write applications with strict timing constraints for Linux. Like Linux itself the RTAI software is a community effort. RTAI provides deterministic response to interrupts, POSIX-compliant and native RTAI real-time tasks. RTAI supports several architectures, including IA-32, x86-64, PowerPC, ARM, and MIPS.

In software testing, test automation is the use of software separate from the software being tested to control the execution of tests and the comparison of actual outcomes with predicted outcomes. Test automation can automate some repetitive but necessary tasks in a formalized testing process already in place, or perform additional testing that would be difficult to do manually. Test automation is critical for continuous delivery and continuous testing.

Business rules are abstractions of the policies and practices of a business organization. In computer software development, the business rules approach is a development methodology where rules are in a form that is used by, but does not have to be embedded in, business process management systems.

Windows Presentation Foundation (WPF) is a free and open-source graphical subsystem originally developed by Microsoft for rendering user interfaces in Windows-based applications. WPF, previously known as "Avalon", was initially released as part of .NET Framework 3.0 in 2006. WPF uses DirectX and attempts to provide a consistent programming model for building applications. It separates the user interface from business logic, and resembles similar XML-oriented object models, such as those implemented in XUL and SVG.

<span class="mw-page-title-main">Component-based software engineering</span> Branch of software engineering

Component-based software engineering (CBSE), also called component-based development (CBD), is a branch of software engineering that emphasizes the separation of concerns with respect to the wide-ranging functionality available throughout a given software system. It is a reuse-based approach to defining, implementing and composing loosely coupled independent components into systems. This practice aims to bring about an equally wide-ranging degree of benefits in both the short-term and the long-term for the software itself and for organizations that sponsor such software.

<span class="mw-page-title-main">Servomotor</span> Type of motor

A servomotor is a rotary actuator or linear actuator that allows for precise control of angular or linear position, velocity and acceleration. It consists of a suitable motor coupled to a sensor for position feedback. It also requires a relatively sophisticated controller, often a dedicated module designed specifically for use with servomotors.

An industrial control system (ICS) is an electronic control system and associated instrumentation used for industrial process control. Control systems can range in size from a few modular panel-mounted controllers to large interconnected and interactive distributed control systems (DCSs) with many thousands of field connections. Control systems receive data from remote sensors measuring process variables (PVs), compare the collected data with desired setpoints (SPs), and derive command functions that are used to control a process through the final control elements (FCEs), such as control valves.

Hardware-in-the-loop (HIL) simulation, HWIL, or HITL, is a technique that is used in the development and testing of complex real-time embedded systems. HIL simulation provides an effective testing platform by adding the complexity of the process-actuator system, known as a plant, to the test platform. The complexity of the plant under control is included in testing and development by adding a mathematical representation of all related dynamic systems. These mathematical representations are referred to as the "plant simulation". The embedded system to be tested interacts with this plant simulation.

Model-based design (MBD) is a mathematical and visual method of addressing problems associated with designing complex control, signal processing and communication systems. It is used in many motion control, industrial equipment, aerospace, and automotive applications. Model-based design is a methodology applied in designing embedded software.

EICASLAB is a software suite providing a laboratory for automatic control design and time-series forecasting developed as final output of the European ACODUASIS Project IPS-2001-42068 funded by the European Community within the Innovation Programme. The Project - during its lifetime - aimed at delivering in the robotic field the scientific breakthrough of a new methodology for the automatic control design.

<span class="mw-page-title-main">CODESYS</span>

Codesys is an integrated development environment for programming controller applications according to the international industrial standard IEC 61131-3.

LinuxCNC is a free, open-source Linux software system that implements numerical control capability using general purpose computers to control CNC machines. Designed by various volunteer developers at linuxcnc.org, it is typically bundled as an ISO file with a modified version of 32-bit Ubuntu Linux which provides the required real-time kernel.