Printer Friendly

Exploiting concurrency in motion and process control.


Using a PC-based solution with off-the-shelf components has been a long-time trend in the Industrial Automation (IA) industry, and the benefits that it has brought have been numerous. There is a crucial trend in the computing industry that has to be embraced to make full use of PC-based control solutions. The trend is the peaking of the processing power per execution unit, and the rise of multi-core computing. For example, looking at AMD's server roadmap (Ferguson, 2008), one can see that at the end of their 2 year projection they expect to have 12-cores per CPU. Total processing power will continue to increase, but it will be in the form of closesly packed multiple execution units.

This means that software developed today should not be expected to benefit from the increase in processing power per unit as before, in other words, 'The Free-Lunch is Over' as a popular software writer Herb Sutter wrote (Sutter, 2005). In his article he discusses the major implications this has on the way we write software. This means that the motion and process control software developers have to look for ways in which the current tasks that need to be improved can be broken down and parallelized, and look for features which previously were considered costly in processing time, for ways to exploit the currently numerous available cores.

In this paper we take a look at some techniques used today in process and motion control that can be parallelized and new operational demands that can be fulfilled by these systems. The areas that can be improved are in the consolidation of process control processes, NURBS interpolation and adaptive control. The increased processing capacity can be used to add features for easier machine to enterprise systems integration, better machine diagnostics and maintenance, and closer integration to CAD/CAM systems.


Motion controllers are being placed into more sophisticated machines where motion is just a part of the overall process that needs to be controlled. A prime example is controlling Advanced Fiber Placement machines, where the motion control needs to be accompanied with precise process control of 32 tow fibers length, motion, tension and temperature. Multiple cores will allow the process control to run alongside the motion control, and each independent process control parameter can run on its own core. Processes can share memory for internal communication, and on multi-core CPUs, this can even be the L2 or L3 cache, which allows for the lowest latency communication, possibly increasing response times of critical tasks.

In cases where the necessary I/Os for process control have to be performed at a farther distance from the motion controller, a communication bus based on the standard Ethernet can be used. Since Ethernet has become extremely popular in most communications not involved with real-time behavior, a number of proprietary protocols such as EtherCAT have sprung up to deal with the non-deterministic behavior of the collision response. These proprietary protocols deliver real-time behavior in the order of 1ms or much less response times, but at the cost of not being able to use standards based components. However, a review of these protocols (Zwerina, 2005) has shown that even using the standard Ethernet/IP together with QoS, UDP and IEEE1588 can still deliver deterministic behavior, not as high as the proprietary ones, but still within the range of most control applications. Integrating this as the main communication bus of the motion controller can allow it to exploit further concurrency that lies in distributed high-performing FPGA, DSP and specialized application processors.

The most computationally intensive process of the motion controller is the computation of the interpolation points for the motor drives, taking into account numerous other static and dynamic parameters. Ideally, the motion control should be interpolating Non-Rational Uniform B-Splines (NURBS) based paths, as today all the popular CAD/CAM systems have moved into using curves to store the geometry of shapes. Storing paths in NURBS allows for consistency between the model and the paths by maintaining geometric precision up to the point of axis interpolation. NURBS interpolation is a costly operation, and there is already research (Yau et al., 2005) for real-time, accurate and parallel algorithms using FPGA boards.

Multiple cores will allow the creation of separate parallel tasks to perform the lookahead calculations. Before the motion control starts, multiple processes can be started that will perform precise interpolation calculations, of different segments of the path. Once they are done with a segment, their results will be buffered, and can be immediately used to drive the motors. The advantage of running multiple such tasks is that each one can take a longer time than if it were meant to run in stringent real-time, and once the results are done, the buffer will contain data for as many segments as the number of tasks that were running. This allows for more complex and futher-in-time lookahead methods to be implemented.

The motion controller has an ever expanding role as it becomes a focal point of connection between a machine's operation and the overall plant and company operations. As there is an increasing pressure for manufacturing companies to integrate their factory floor systems with their enterprise planning and operation systems (Brousell, 2008), the motion controller will need to be interconnected to these systems. The requirements of such integration on the controller will be to collect operational data, and respond to informational requests, probably from higher level management systems. This has to be done without interfering with the primary function of the controller--process and machine control.

Tying together manufacturing operations and enterprise planning systems is crucial for companies that want to have an integrated operating model. To achieve this, the controller will have to provide data to already existing IT systems, by connecting to the company's middleware, usually through Web services such as SOAP. To provide a custom and rapid development platform, this would have to be based on a popular OS, such as Windows or Linux, as those platforms already provide numerous Rapid Application Development (RAD) tools such as .NET Framework and Sun's Java to easily interconnect to the existing IT infrastructure. To have access to the machine's data, this OS can run on its own cores, and be able to read and query, with a lower priority from the main real-time OS that controls the machine. Both systems can be run on multiple-cores, on the same machine, providing extremely fast and reliable communication. To achieve the different priorities expected from this system, where a real-time and a non-real-time OS are competing for peripheral resources, a real-time hypervisor can be used, such as the RTS Real-Time Hypervisor by Real-Time Systems GmbH. This will fulfill the necessary real-time requirements of the process and motion control processes, while allowing the integration system to be running in parallel.

Using a real-time hypervisor, the controller can also contain virtual machines that provide Human-Machine Interface (HMI), and CAD/CAM integration. The HMI is a common part of the control system, and in this case, the real-time OS gets to not be disturbed by failures caused in the HMI component, but gets almost the same speed and reliability of communication through shared memory. The CAD/CAM integration is a relatively new concept, that has been researched more in-depth only recently due to the availability of multiple execution units and larger processing power. This research comes from the Brigham Young University where the Direct Machining And Control (DMAC) and the Reconfigurable Mechanism for Application Control (RMAC) (Lin, 2005) concepts have been developed. These concepts try to remove the M&G codes that are so prevalent, and also modularize a machine motion calculation from a given path, to allow machine operation directly from a CAD/CAM system in order to increase machining production rate, quality and flexibility.

The motion controllers of the future will be strained to contain more and more control and measurement points. Machines will need to collect serviceability data, such as vibrations, precision feedback, and other parameters that can determine the degradation of the performance characteristics of the machine. Such degradation could be caused either by improper usage, incorrect design or normal wear and tear. This data can allow the manufacturers to diagnose issues faster and make better decisions in future design. To relate to the software industry, companies such as Microsoft are already using so-called Software Quality Metrics (SQM) data in their popular software products, to generate diagnostics data. This has been used numerous times by the product maintenance teams to diagnose recurrent and popular failures, and by the product development teams to make better designs in the future.


The hardware side has already promised the delivery of ever increasing number of cores, and even though they will eventually hit certain chip-die limits for the maximum cores per chip, software will probably be the lagging factor to exploit those gains. Writing reliable concurrent software is still very hard work, and concurrent software development is plagued with bugs that are hard to reproduce, which removes even more determinism during the quality assurance process. This has partly been due to the primitive model of using threads and synchronization elements established a while ago (such as the standard POSIX APIs), which proved to be very error-prone for complex projects. Race-conditions and dead-locks appear in software long after those same scenarios have been tested, and even worse, they cause data corruption that would be hard to reproduce. There is an understandable aversion towards concurrent programming in reliable systems.

All is not lost though, as more and more software corporations and research institutions such as University of California at Berkley (Merritt, 2008) and Stanford University are concentrating efforts and funds into developing concurrency models that will make development easier and less error prone. There are also efforts by programming language committees like the C++ Standard Committee to standardize on a viable memory model that will abstract the hardware and provide a foundation for developing parallel code (Boehm, 2008) that runs consistently on different architectures. The debates are quite heated, as there are many competing models being presented.

Besides the issues in creating parallel code, there is another limit to multiple core exploitation--non-parallel algorithms. There are certain types of problems that do not have parallel algorithms developed, and at the current state, they cannot be improved through multi-core use.


The rise in available concurrent processing power will be the next challenge for motion and process controllers to exploit. There is a demand for better machines that can peform faster to increase production throughput, that can be managed better, providing more diagnostics, and that can integrate better with the factory and enterprise systems. Creating a robust system that manages processes for reliable and scalable operation will take time, as concurrency issues are still being ironed out, but it is the future for the modern motion and process controller. Exploiting concurrency will provide immense benefits to consumers of such systems. This type of controller is already in development at the research laboratories of MIKROSAM, where it will be used for efficient control of the next-generation wind-blade production and in their new Advanced Fiber Placement (AFP) machines.


Boehm, H. (2008). Threads and memory model for C++. Available from: Accessed: 2008-05-17.

Brousell, D.R. (2008). The Long Climb. Manufacturing Executive. April 2008. 8-13.

Ferguson, S. (2008). AMD Roadmap Calls for 45nm Chips in Late 2008. Available from: /AMD-Roadmap-alls-for-45nm-Chips-in-Late-2008/Accessed: 2008-05-15.

Lin, W. (2005). Dynamic Reconfigurable Machine Tool Controller. Available from: Accessed: 2008-05-10.

Merritt, R. (2008). CS gets with parallel program. Available:;?articleID=206 905134. Accessed: 2008-05-20.

Sutter, H. (2005). The Free Lunch is Over: A Fundamental Turn Toward Concurrency in Software. Dr. Dobb's Journal. March 2005. 30-33.

Yau, H.; Lin, M. & Chan, Y. (2005). Design and implementation of real-time NURBS interpolator using a FPGA-based motion controller. IEEE International Conference on Mechatronics. July 2005. 56-61.

Zwerina, K. (2005). Standards-based real time Ethernet now off-the-shelf. Available from: Accessed: 2008-05-23.
COPYRIGHT 2008 DAAAM International Vienna
No portion of this article can be reproduced without the express written permission from the copyright holder.
Copyright 2008 Gale, Cengage Learning. All rights reserved.

Article Details
Printer friendly Cite/link Email Feedback
Author:Samak, Samoil; Samakoski, Blagoja; Sokoloski, Zlatko
Publication:Annals of DAAAM & Proceedings
Article Type:Report
Date:Jan 1, 2008
Previous Article:Improved negotiation process within distributed manufacturing systems.
Next Article:Black sea waves, energy source.

Terms of use | Copyright © 2018 Farlex, Inc. | Feedback | For webmasters