New Controls Options Streamline Coordinated Motion
| By: Kristin Lewotsky, Contributing Editor
It can be easy to assume that all multiaxis motion control involves coordinated motion. In reality, coordinated motion is a very specific subset of motion control. Control schemes that involve multiple axes operating independently to position the load are much simpler to execute than those requiring highly synchronized motion. The latter, known as coordinated motion control, requires very fast control loops with high-resolution feedback. There was a time that building one of these systems required programming expertise, purpose-built applications, and sophisticated controls hardware. Today, coordinated motion functionality can be built into the firmware of the device, and design teams have the option of using graphical user interfaces through HMIs to program PLCs to do the work.
“From the supplier’s standpoint, it's not so simple,” says Mark Wilder, application engineer at Yaskawa America (Waukegan, Illinois). “For the user, it should be easy.”
Many automation tasks require motion along multiple axes to position the load without needing coordination among them. A dockside crane, for example, might first translate a container along the X-axis to reach its intended position and then lower it on the Z-axis until it reaches the deck of the ship. Motion takes place along two axes, but serially rather than simultaneously. An automated pill dispenser for a pharmacy that positions a bottle, opens a feeding chute, dispenses medication, and puts the lid on the bottle does not involve coordinated motion control. It may involve centralized control but here, too, motion is played out serially. If it is implemented using distributed control, the master-slave architecture involves the “smarter” axis handing down commands to connected axes.
Even motion along multiple axes simultaneously may not qualify as coordinated motion. Consider an XY positioning stage in a DNA analyzer that moves along orthogonal axes in order to reach a desired sample well. Positioning may leverage simultaneous motion on both axes but the accuracy of motion along one axis is not used to modify the commands to the second axis. If the reagent dispensing head in that same instrument needs to move along a diagonal path between sample wells, however, the situation changes dramatically. Now, the error introduced by X axis motion needs to be taken into account along the Y-axis in order to reach the end point with desired accuracy. Now, the system is applying coordinated motion.
Coordinated motion involves positioning tasks that require one axis to update its movement depending on the performance and feedback of other axes. This can involve multiple axes acting together to position a single load, such as moving tooling across a complex path to deburr an impeller. Alternatively, it can involve multiple separate axes synchronizing their positions and motion to complete an operation such as wrapping a product in plastic or cutting off the end of a plastic tube. Other examples include 3D printing, stamping steel blanks in an auto body forming line, and carbon fiber placement (see figure 1).
Figure 1: This carbon fiber placement system must coordinate motion among axes to a high degree of accuracy.
The basics of coordinated motion
There are different approaches to synchronizing the motion of multiple axes. One is to use a master-slave architecture in which the slave axes follow the master. This approach requires high speed communications over an industrial field bus. The master may be a physical axis – an encoder – or a virtual axis. “You create the master, whether it be an encoder or a virtual motor,” says Robert Miller, senior product manager at Mitsubishi Electric Automation (Vernon Hills, Illinois). “You spin the virtual motor and then all the other axes will follow it or follow the encoder to create the motion profile.”
This architecture can be realized with a centralized controller or a combination of centralized and distributed control via smart drives. Axes managed by the centralized controller may follow more complex motion profiles while the distributed axes may be simple linear profiles. “The more information you can close in the amplifier, the faster the motion will take place because you don’t have to send the data to the controller and wait for a response,” says Miller. “Once the information is sent to the amplifiers, they will execute their tasks. The motion controller just needs to monitor those axes and adjust if needed,” added Miller.
Not all coordinated motion lends itself to a master-slave architecture. Alternatively, axes can be grouped in centralized control. The group approach improves trajectory planning. It has the advantage that whenever one axis develops an error, the controller modifies the commands for each axis to compensate accordingly.
Depending on the application, a system might incorporate robots or CNC machines, as well as multiple motion axes. In order to move the point of interest (POI) to the desired endpoint with the specified velocity, the controller needs to determine the location of each axis in some common coordinate system. This involves transformations among multiple coordinate systems using complex kinematics.
We can establish the following coordinate systems:
- Axis coordinate system (ACS): Frame of reference of the physical axis after homing
- Machine coordinate system (MCS): Coordinate system of the machine, with the origin typically at the base; for a Cartesian system, the MCS may be the same as the ACS
- Product coordinate system (PCS): Coordinate system of work piece
- World coordinate system (WCS): Fixed frame of reference that encompasses multiple machines
Consider a pick-and-place system that moves a part from a conveyor belt to a box. The end effector of the robot is in the ACS, while the base is defined in the MCS. The part on the conveyor is in the PCS, and the system as a whole is defined in the WCS. To move the parts, the software needs to transform from the ACS to the MCS, then determine the offset from the MCS to the WCS, updating displacements along each axis to compensate for errors.
“It can be quite complex because you have a lot of kinematics to deal with,” says Wilder. “Instead of axes acting on their own to move to a position, they have to work together. Some axes may be going very fast or making very big moves in a short period of time. You have to know the kinematics of the whole system.”
Motion can be divided into point-to-point moves and contour moves. Certain point-to-point moves are path independent?the controller manages the motion of multiple axes independently to bring the POI to a specified position. Recall our DNA sequencer that positioned with orthogonal trajectories. In order to convert the motion of the sequencer to a diagonal path, the system needs to apply interpolated motion.
Interpolation subdivides the path between the start point and end point for each axis into multiple small segments. These segments can be used to build complex trajectories. The most common interpolation types are:
- Linear interpolation: Straight-line motion between two points
Sample applications include gantries, Cartesian systems moving at an angle, or multiple axes moving at different speeds.
- Circular interpolation: Motion along the arc of a circle between two points
Sample applications include glue dispensing.
- Helical interpolation: Motion along a circle with additional translation along the Z-axis
Sample applications include 3D printing, glue dispensing, and machining of contoured surfaces like impeller blades.
- Spherical interpolation: Motion along the outside of a sphere
Sample applications include robotics and other types of curvilinear motion.
- Cubic spline fit: Arbitrary motions
A key variation of coordinated motion is what is known as a blended move. To illustrate, consider a series of linear moves that describe a triangle. The POI moves from point A to point B using a linear interpolation. At point B, it pauses and then follows a linear trajectory from point B to point C. After stopping at point C, it returns to point A (see figure 2).
This path is exact, making it a good fit for applications like cutting. It involves a complete stop at each end point, however, which is not effective for constant-velocity applications such as painting and welding. In these cases, blending delivers better results.
In a blending move, axes begin adjusting parameters for the move from point B to point C before the POI actually reaches point B. As a result, the POI completes its entire path without ever stopping. It can maintain constant velocity. The trade-off is that the POI never actually touches the end points of the path.
Figure 2: Linear interpolation (left) moves the point of interest (POI) to the end point before initiating the next trajectory. In the case of blending (right), the axes begin transitioning to the follow-on move before the POI even reaches the first end point. Blended trajectories are constant velocity, although the POI does not fully reach any of the designated end points. (Courtesy of Yaskawa)
At the far end of the coordinated motion complexity range is the contour move, which is good for complex surfaces. In a contour move, the controller assembles a complex trajectory from small linear and circular moves (see figure 3). This approach is useful for applications like machining propeller blades or laying down carbon fiber onto a curvilinear surface.
Figure 3: A contoured move carries the POI on a designated path formed by a series of small point to point moves strung together. (Courtesy of National Instruments)
Coordinated motion simplified
Coordinated motion used to have a well-deserved reputation for complexity that caused machine builders to avoid it for all but absolutely essential applications. The classic model was to use a PLC to run the machine and a dedicated motion controller to handle kinematics, path planning, and trajectory generation. Programming motion controllers required special programming experience. Add other subsystems such as CNC machines and robotics, and OEMs needed engineers capable of languages like G code, which varies from vendor to vendor.
Meanwhile, the functionality of PLCs steadily improved. Initially, they were best for overall machine control, with support of a few axes of motion. With successive generations, PLC functionality increased to the point that the devices could handle even higher levels of coordination. The stage was set for the PLCopen initiative.
PLCopen is an open-source software initiative designed to streamline industrial automation. Based on the IEC 61131-3 programming standard, PLCopen focuses on reusable function blocks that target common tasks in motion control (see figure 4). In particular, PLCopen Part 4 targets coordinated motion. It includes function blocks for common tasks like grouping axes, coordinate transforms, making linear and circular interpolated moves, etc. PLCopen also supports cubic splines and blending.
Figure 4: Function blocks are blocks of pre-written code that simplify the implementation of coordinated motion systems. Instead of programming their system at the application layer, OEMs configure function blocks through software interfaces. (Courtesy of Mitsubishi Electric Automation)
“The function block approach provides significant benefits,” says Binu Thomas, business development - packaging and handling, Siemens Industry (Norcross, Georgia). Writing code from scratch for coordinated motion can be complex and time-consuming. Programs can be long and difficult to debug. Even if the software works perfectly, the development process still consumes substantial resources. “There are many, many advantages to a function-block-based approach for high-end coordinated motion control,” says Thomas. “You can reduce costs because you are using standard pre-tested modules. Debugging them is really simple because there is already diagnostic information built into the block.”
“We no longer need a dedicated motion controller to be highly accurate and fast on coordinated motion,” says Marcel Voigt, solutions architect, B&R Industrial Automation (Lombard, Illinois).
In the motion vendor community, the trend is toward using the function block approach to enhance ease-of-use. Customers have the option of buying PLCs with function blocks written into the firmware. Associated software simplifies setting up the system. Instead of writing code, OEMs can use a graphical user interface to configure the system (see figure 5).
Figure 5: Function blocks written into the firmware of a PLC can be accessed by a GUI so that setting up the system is a matter of configuration rather than programming. (Courtesy of Yaskawa)
The approach also substantially reduces development costs. Thomas points to a coordinated motion project he conducted with an engineer who had been working in industry for just two years. “This was the first time he was working with that toolbox and within three hours, we were able to set up the delta picker right from scratch,” Thomas says.
One of the important attributes of PLCopen is that function blocks can be customized. This has enabled motion vendors to develop custom kinematics for their systems. The idea is that the motion vendors create customized function blocks to make coordinated motion easy to adopt without significant in-house expertise in exotic programming languages.
Motion vendors are also free to implement the function blocks in the most effective way. Increasingly, that has taken the form of PLCs with function blocks embedded in the firmware (see figure 6). This enables users to set up the software through a GUI installed in the HMI rather than diving into the code directly.
Figure 6: CPU for one of the new breed of PLCs that features coordinated motion function blocks written into the firmware (Courtesy of Siemens)
PLCs are not the only way to implement function blocks. Function blocks can be used on PCs with soft motion. “It’s just a part of an industrial PC and run-time base that allows the PC to do not just synchronized motion applications for packaging machines, but also the highly-coordinated motion of robotics or CNC machines,” says Voigt.
As functional as PLCs and industrial PCs might be, some applications still demand the classic dedicated motion controller. “It almost comes down to the quantity of axes,” says Miller. “We have a [PLC-based] motion controller that can do multiaxis coordination. We have a full blown motion controller that can also do multiaxes coordination…just a higher axes count. Also, the way you program it isn't a lot of configuration and writing PLC code, it's through a graphical editor.”
Ultimately, it comes down to customer choice. “A customer could go all the way down to the nitty gritty and develop the application from scratch, or go the next level up and use a function block,” says Voigt. “Or, they could go to the next level up with a dedicated solution for palletizing or pick and place. The customer can choose whatever they are comfortable with.”