By Jacob Paso, Motion Product Development Manager, Delta Computer Systems, Inc.
In the hectic world of industrial automation, engineers have little patience for inefficient software. Easy-to-use is coveted, but not at the expense of flexibility, especially when thorny situations arise. Given that every manufacturer claims their software is easy-to-use and boosts productivity, it’s difficult to weed through the marketing fluff to find out whether a certain piece of software is truly easy to use and whether it has the flexibility to handle not only the machine requirements, but also the inevitable feature creep and unexpected problems.
Easy-to-use software may not have enough functionality to handle anything other than a few situations, however. Conversely, flexible software may have so much flexibility that the user must go through a lot of work to set up the solution to a particular problem. Developers should beware of software that the vendor calls “freely programmable.” That usually means the customer is required to write a whole lot of difficult code. If he or she is an expert with lots of programming experience, this may be acceptable, but for many automation engineers who need to use many different software packages, a tool package that includes many pre-canned components tailored for relevant application functions is much more useful.
Motion Applications Are Special
A related problem occurs when designers try to use a general-purpose controller like a PLC to do a specialized function like motion control. PLCs are good for machine control and status monitoring, but for real-time motion control tasks where sub-millisecond responsiveness is required, many PLCs may not have the speed to close control loops fast enough, nor the motion features or troubleshooting tools to quickly and accurately program the motion. The machine cycle times and instruction repertoire of today’s advanced motion controllers are tailored for the task of making high-speed motion decisions.
But ease-of-use and high performance must also be balanced with the flexibility to enable the growth of applications over time. In this regard, it is helpful for the motion controller to be supported by a vast list of functions in its programming library. A helpful motion control supplier is one that adds functionality to its products over time, motivated by experience in solving innovative applications in the marketplace.
System integrators who are looking to make their lives easier will also do well to consider in their selection process how much training the company has for their software, as well as how much help, forums, and design examples they provide. They should also ask whether the company charges for support, and how difficult is it to find a support person with the expertise they need.
Application Feedback Drives Functionality
For example, Delta Computer Systems, the motion controller manufacturer based in Battle Ground, Washington, offers its RMCTools software precisely for high-performance motion control using the company’s RMC family of electro-hydraulic controllers. Based on feedback from customers, Delta’s technical support team, sales personnel, and marketing staff, the company’s software developers have put together a toolset that they know will work in real applications. With continuous feedback, the company continues to improve the software to increase efficiency for customers.
RMCTools software has been designed to make motion sequences easy. The flexibility of Delta’s programming model has allowed advanced types of motion to be possible, even when those types of motion were not specified in the original design scope.
Experienced designers know that motion application development isn’t finished when the control algorithm is programmed. The control loop gains must be tuned to remove the error between target and actual motion caused by physical characteristics of the system. For this purpose, advanced motion controllers are supported by automated tuning software. While other vendors provide the ability to tune a single set of gains, Delta Computer Systems’ Tuning Wizard provides a range of gain alternatives, allowing the designer to tweak the system’s responsiveness using an intuitive slider bar on the computer screen (see Figure 1). To graphically display how the system performs in real time, the company provides a plot manager (Figure 2) that shows actual versus target motion parameters versus time.
Real World Examples
Most motion applications for RMC motion controllers can be programmed by filling in forms and selecting options from drop-down menus. Figure 3 is an example showing how complex multi-axis synchronization is very straightforward to set up using Delta’s RMCTools programming software.
If the functionality that a user wants to set up is not directly supported by the software, it can be accomplished using Delta’s user program feature. The following are two examples of how the software can be used to simplify some complex application tasks using the user programming feature.
Adaptive Amplitude Control
Motion controllers typically generate a target profile that must be followed precisely. In cyclic testing, where thousands and even millions of sinusoidal cycles are run at various frequencies, following a precise target is difficult or impossible. In such systems, only the amplitude is important, so a different algorithm is employed that adaptively adjusts the commanded amplitude so that the actual amplitude reaches the desired amplitude. This results in much easier setup for the customer.
The user program shown in Figure 4 starts a sine wave motion (step 1 in the code box at right in the screen shot), and then executes a continuous loop with the period of the sine wave. During each cycle, the controller initializes variables (step 2), and then detects the max and min values of the actual position (step 3). In step 4, the controller calculates the maximum and minimum output values that are to be produced and updates the amplitude of the target motion profile before jumping back to re-run the loop. The result is that the actual amplitude always reaches the desired amplitude without overshooting or undershooting.
This user program, while not for novices, offers great flexibility for semi-advanced customers to modify it to control a combination of position, pressure, force, open-loop signals or closed-loop signals, or to adjust some other value besides amplitude such as offset or phase. Some software packages that offer a similar feature don’t have the flexibility to modify the basic functionality to specific needs without requiring expensive engineering time from the manufacturer. Motion controllers that do not have the high-level functionality of Delta’s RMCs may require complex machine-level programming, at the cost of reduced flexibility and extended time-to-market.
Synchronized Open Loop Control
Open loop motion is not typically associated with any type of synchronized motion, since it cannot control to a target position. However, when trying to synchronize the cylinders of one of Delta’s customers’ systems, a hay press, application engineers discovered that any normal closed-loop algorithm did not work, since the cylinders needed to give all the force they had to compress the bales, with compression times varying greatly based on bale density. The application engineers developed an algorithm that gave an open loop signal to each cylinder valve, continuously determined which cylinder was furthest behind, and modulated the signals to the rest of the cylinders so that they would stay with the slowest cylinder.
Figure 5 contains the user program step that calculates the position difference between each axis and the slowest axis, and performs a proportional gain and integral gain calculation to modulate the voltage going to each axis. The first expression in the code box deals with ramping up the open loop signal to its full value. The second expression runs each millisecond and finds the position of the axes that is furthest behind. This expression also calculates other values to report just for troubleshooting and calculates the difference (OLError) between the axis furthest behind and each of the other axes.
Next, the expression performs a proportional and integral gain calculation for each axis to stay where the slowest axis is. And finally, the program applies the calculated signal voltages to each axis. Once the axes have reached a desired position, the user program will continue on to some step that stops the axes.
This user program demonstrates the programming of visually-oriented motion sequences that also offers the ability to add sections of code. The flexible and relatively easy-to-read code makes it easy for semi-advanced customers to modify the code, for example, to add or remove the number of axes involved. This type of code would be very difficult to program in ladder logic or other general-purpose programming languages, and hence may scare off many automation engineers.
The first time this program ran, the cylinders remained synchronized with 0.005 in., although the requirement was only 0.25 in.! Other customers have modified this example to suit their specific needs.