Share this

Application and debugging of dual-drive gantry system – Application of ACS motion control gantry system

2026-04-06 06:27:01 · · #1

introduction:

In semiconductor wafer processing, measurement, precision laser cutting, scribing, mask making, large-format FPD, OLED, PCB and other inspection equipment, large-format industrial printers, large-format laser processing equipment, SMT and other fields, the application of direct-drive gantry and large-span gantry platforms is becoming increasingly widespread. These gantry platforms are often driven and controlled primarily by linear motors or rotary servos. However, how to control these gantry platforms effectively, ensuring they are fast, smooth, and capable of rapid tuning to meet process requirements, is a challenge. This necessitates dual-drive gantry algorithms to meet these control requirements. Compared to traditional gantry algorithms, which primarily use a master-slave follower approach, ACS motion control employs a cross-decoupling method to achieve dual-drive gantry control. Furthermore, the algorithm incorporates other algorithms developed by ACS over many years in such applications to optimize the dual-drive gantry algorithm. This significantly simplifies configuration, setup, and debugging for users.

Note: Only a minor upgrade is needed to enable older LG systems to support our new standard. See Section 1.8.

1. Hardware connection

A complete gantry system requires two dedicated motors and two encoders to control the gantry axes; therefore, the gantry needs to use two axes from SPiiPlus. Both gantry axes must belong to the same servo processor (SP), thus there are defined servo limitations. For a servo processor with only two axes, axis 0 controls the longitudinal (average) axis, and axis 1 controls the yaw (difference) axis. For a servo processor with four axes, the two pairs of gantry axes are axis 0 (longitudinal) and axis 2 (yaw), and axis 1 (centerofgravity) and axis 3 (yaw).

2. Definition of motor markings

MFLAGS(axis)bit1(#OPEN) — In gantry mode, 1: Open-loop operation, enabling gantry terminal or yaw.

MFLAGS(axis) bit25 (#GANTRY) — 1 enables gantry operation.

3. Setup Program

The following setup procedure is for a two-axis servo processor. By appropriately modifying the axis numbers, we can apply the following setup procedure to other servo processors. The following operations assume that both gantry motors and drives are identical.

Hardware settings:

1) Connect the motor encoder cables for axes 0 and 1 to the encoder input terminals (as long as the motor number and encoder number match correctly, it doesn't matter which motor corresponds to axis 0 or axis 1).

2) Connect the driver outputs of shaft 0 and shaft 1 to the corresponding motors of shaft 0 and shaft 1 respectively.

3) Set SetMFLAGS(0).25=0 and MFLAGS(1).25=0 to ensure that both functions work properly.

Set MFLAGS(0).12=0, MFLAGS(0).13=0, MFLAGS(1).12=0, and MFLAGS(1).13=0.

4) Open the debugging wizard and set axis 0 according to the normal independent axis setting method.

For initial debugging, do not set the position error limit too small.

5) Save the results to flash, steering axis 1.

6) Copy the parameters of axis 0 to axis 1.

7) Skip to the previous debugging and reversal to confirm that the parameters of axis 0 allow axis 1 to operate properly (make sure axis 0 is disabled).

8) Use the terminal or viewing window to confirm that both encoders are working correctly and that the reading directions are the same. You can disable these two axes and manually push them to a certain distance to check the encoder readings and direction. If the encoder polarity is incorrect, a hardware modification should be made (swap A and A-).

4. Gantry debugging

The initial setup allows the motor to be debugged in non-gantry mode, with only one axis enabled at a time. Now we will debug both axes in gantry mode.

Note: Debugging a gantry system requires knowledge of servo control loop theory, Bode plots, and frequency analysis. For assistance, please contact [email protected].

Initial gantry debugging:

1) Align the gantry shaft leadscrew by hand as much as possible (for flexible gantry systems). If there is a cross-axis load, place it in the middle position.

2) Confirm that the debugging parameters for each axis are the same.

3) Make the motor travel the same distance at the same speed.

4) Start by adjusting the debugging parameters of SLVKP, then adjust SLVKI and SLVPKP (it seems that SLVKP needs to be reduced). To prevent the two motors from repelling each other due to mismatched servo parameters, the debugging parameters of both axes must be changed simultaneously.

5) After successful time-domain debugging, use the Frequency Response Function Analyzer (FRF) to verify the stability of each axis. Ensure that both axes are analyzed using the FRF. After the initial gantry mode debugging is complete, save the debugging parameters for future use in the homing procedure.

Real gantry debugging:

The next step is to enter the actual gantry debugging mode and optimize the longitudinal and yaw axis parameters. It's important to remember that some changes will occur once you enter gantry debugging.

a) FPOS(0) no longer represents the encoder of axis 0, and FPOS(1) no longer represents the encoder of axis 1. At this time, FPOS(0) displays the position of the longitudinal axis, which is the average value of the encoders of axis 0 and axis 1. FPOS(1) displays the position of the yaw axis, which is the difference between the encoders of axis 0 and axis 1.

b) Move axis 0 longitudinally; this command applies to both motors. Move axis 1 yaw; the opposite command is sent to both motors. (Note: Hard gantry systems do not respond well to off-axis movements.)

c) The debugging parameters of axis 0 control the longitudinal axis, and the servo parameters of axis 1 control the yaw axis.

d) The current limit of axis 0 restricts linear force. The current parameter of axis 1 restricts rotational torque.

Remember these changes and double-check the current limits. Pay particular attention to checking XCURV and XCURI for axis 1. These parameters must be limited, especially for rigid gantry systems.

Note: Because XRMS is still a test value of the effective value of the current of two independent motors or drivers, it cannot be changed.

For chapters following the Lungmen mode, the COG axis (center-of-gravity, longitudinal) corresponds to axis 0, and the Yaw-axis corresponds to axis 1.

1) Disable the motor, and set MFLAGS(0).25 and MFLAGS(1).25 to 1.

2) Set the initial values ​​for the COG and Yaw debugging parameters. The initial value for COG can be set to the parameter for axis 0 or axis 1 in non-gantry mode. In most cases, this will result in a stable servo debugging. The debugging parameters for Yaw are usually smaller than these values.

3) For hard gantry systems, sometimes it's necessary to enable the yaw control loop when debugging the COG axis. How do I enable it?

4) Enable the motor and optimize the COG axis tuning parameters using the FRF analyzer.

5) Optimize the yaw axis tuning parameters using the FRF analyzer.

Once the gantry mode debugging is complete, save all parameters to flash.

5. Reversing direction

The commutation start-up will be completed when the controller is powered on in the future. There are currently several methods to accomplish this.

The commutation command—the commutation command can be used in small and medium-sized gantry systems with a minimum closed-loop bandwidth of 30-40Hz.

"Step-mode reversal"—This method is recommended for large gantry system applications.

Hall effect commutation—this method is robust and applicable to any system. However, its accuracy is slightly lower than the previous two methods.

Reversal command:

For detailed information on commutation commands, please refer to the SPiiPlus Setup Guide. It is crucial to note that when using commutation commands in a gantry system, each motor must be used individually; therefore, this command must be used in non-gantry mode. This is one reason why a set of debugging parameters in non-gantry mode must be saved. The recommended operating procedures for using commutation commands are as follows:

1) Disable motor to enter non-gantry mode (MFLAGS(0).#GANTRY=0,MFLAGS(1).#GANTRY=0)

2) Download debugging parameters in non-gantry mode

3) Enable axis 0, and use the reversal command to perform automatic reversal. Disable axis 0 after completion.

4) Repeat the above steps for axis 1.

Step mode reversal:

Step-mode commutation is the process of moving the axis in open-loop step mode until the indexes are found. Once the indexes are found, the commutation phase is retrieved from flash. When using step-mode commutation, the following steps are recommended:

1) Disable motor, enter non-gantry mode (MFLAGS(0).#GANTRY=0,MFLAGS(1).#GANTRY=0)

2) Run axis 0 in step mode (only axis 0 is movable throughout the process) until the limit switch is triggered (or a stop is detected). Run in reverse until the index of axis 0 and axis 1 is found.

3) Disable axis 0, and download the reversal phase to axis 0 and axis 1.

Hall sensor commutation:

For a detailed introduction to Hall sensor commutation, please refer to SPiiPlusACSPL+Programmer's Guide.

After the reversing process is complete, you can enter gantry operation mode. However, this is not the best approach for systems with large tilt offsets, as it may cause yaw axis instability. In most cases, when the non-gantry mode tuning parameters are available, it is recommended to first return the motor to zero in non-gantry mode before entering gantry operation mode.

6. Zeroing and tilt alignment

There are many methods for homing, but here we will only focus on two more general methods: homing via limit switch and homing via stop. For both methods, we assume that indeses exist on both axis 0 and axis 1, and that the homing process has been successfully completed.

Limit switch returns to zero:

Limit switch homing involves moving both motors to the limit switch position and then returning to the index. The index is used as the initial point of the new coordinate plane. Homing can be performed in either gantry mode or non-gantry mode; non-gantry mode is recommended. When using limit switch homing in non-gantry mode, the following steps are recommended:

1) Default response of the limit switch

2) Make both motors run synchronously in the same direction.

3) Once a limit switch is encountered, the corresponding motor stops. Once both limit switches are detected to be in reverse, the index flag is reset.

4) Once the indexes of axis 0 and axis 1 are triggered, stop the movement.

5) Use indexes to set the zero position of each axis.

SETFPOS(0)=FPOS(0)–(IND(0)–OFFSET(0))

SETFPOS(1)=FPOS(1)–(IND(1)–OFFSET(1))

End, stop, return to zero:

End-of-motion stop and zeroing is the process of moving two horses to their physical ends and then returning to the index. The timing of end-of-motion stop triggering can be determined by monitoring the position error. For this method to be robust, the maximum position error of the motion machine must first be tested with a similar motion plan (especially with skew bias). A slightly larger value is then used as a threshold to determine whether end-of-motion stop is triggered. This method can be used in both gantry and non-gantry modes, but its use in non-gantry mode is recommended.

When using end-stop homing in non-gantry mode, the following steps are recommended.

1) Reduce the output current of both axes to prevent damage to the load or hard limiting. (Reduce XCURI and XCURV)

2) Slowly move the two axes in the same direction.

3) Once the position error threshold is exceeded, stop the movement of the corresponding axis. Once both axes have stopped, reverse the movement and reset the index flag.

4) Once the index of both axes is triggered, stop the movement.

5) Reset the output current (reset XCURI and XCURV)

6) Use index to set the zero position for each week.

SETFPOS(0)=FPOS(0)–(IND(0)–OFFSET(0))

SETFPOS(1)=FPOS(1)–(IND(1)–OFFSET(1))

Enter the true Dragon Gate mode:

From now on, we will enter the actual Lungmen mode. To enter the actual Lungmen mode, please follow these steps.

1) Disable axis0 and axis1

Disable axes 0 and 1

2) Set MFLAGS(0).#GANTRY and MFLAGS(1).#GANTRY to enable gantry mode operation.

3) Download the gantry mode debugging parameters and security parameters.

Automatic slant alignment

A simple way to achieve automatic write alignment without using any additional equipment is to monitor the yaw axis drive current. Theoretically, when the cross-axis is perfectly perpendicular, the yaw axis requires only the minimum drive current. Noise issues make searching for the minimum current impossible; therefore, this process searches only for a current threshold. The current threshold must be greater than any current fluctuations caused by noise. A good approach is to start with a small threshold and run automatic yaw alignment multiple times. If the results are inconsistent, increase the threshold and start again. This threshold should be slightly smaller than the motor's effective current. The current search should be performed in both positive and negative directions, and the yaw axis feedback position should be saved as the threshold increases. The midpoint between the two position feedbacks will be considered the position of minimum yaw axis drive current.

When using the yaw axis drive current to automatically complete write alignment, the following steps are recommended.

1) Slowly move the yaw axis in one direction.

2) Monitor the drive current, and store the current feedback position once the current exceeds the threshold value.

3) Move the yaw axis in the opposite direction until the current threshold exceeds the threshold again, and store the feedback position.

4) The average of the two feedback positions is the Yaw axis offset, which will be used. Set the Yaw axis feedback position to the current feedback position minus the Yaw axis offset.

5) Store the yaw bias in flash memory. The future zeroing procedure can be downloaded from flash memory, at which point only step 4 needs to be used to complete the zeroing process.

7. Safety Considerations

Because of the coupling between the two motors, gantry platforms require more protection and control than single-axis motor systems. ACS has incorporated most of the additional protection features into its gantry control support, but it is important for users to understand these protection features and how they will affect end users.

Enable/Disable Gantry Motor

When both motors are in gantry mode, they are essentially treated as one large motor. If one motor is enabled, the other will also be enabled. If one motor is disabled, the other will also be disabled.

Current protection parameters

The current protection parameters XCURI and XCURV now have different meanings. For these reasons, it is necessary to change some of these parameter values ​​when the system transitions from non-gantry mode to gantry mode. The XRMS protection value remains unchanged.

COG axis: XCURI and XCURV will limit the linear torque during idle and peak conditions, respectively. The COG axis current output will be applied evenly to both motors.

The 'Yaw' axis: 'XCURIandXCURV' will limit the rotational torque at the limit and peak values, respectively. The Yaw current output will act on both motors. One motor will receive a positive Yaw current, and the other will receive a negative Yaw current. To reduce the additional torque applied to the mechanical structure, it is important to minimize the value of 'theXCURIandXCURV'.

For example, let's assume our driver has a continuous current of 5A and a peak current of 10A.

If the COG axis XCURV is 80 (representing 8A) and the Yaw axis is set to 20 (2A), in actual operation, it is possible for either axis motor to receive 10A of current. If the COG axis output is 8A and the Yaw axis output is 2A, one motor will receive 10A of current, while the other motor will receive 6A of current.

Conclusion:

With the above settings and debugging, users can easily debug a high-performance gantry platform. The user-friendly and simple debugging tools are suitable even for those who are not very knowledgeable about servo algorithms. It is ideal for control engineers, electrical engineers, or even mechanical engineers who are not proficient in developing servo algorithms. This ensures users benefit greatly in terms of shortening machine development time and production cycles.


Read next

CATDOLL Yuan Soft Silicone Head

You can choose the skin tone, eye color, and wig, or upgrade to implanted hair. Soft silicone heads come with a functio...

Articles 2026-02-22