Testing the Parker MX80L stages was quite easy as they were designed to be compatible with my VIX IH servo drives. The same is not true of the Aerotech ATS125, so we will be doing things the hard way. To further complicate this issue, the IH drive is intended for use with linear motors - not rotary ones.
I actually had a hard time getting this to work and contacted Parker technical support. They were incredibly helpful and recommended using the VIX IE software instead, which is designed for rotary motors and provides some tools for configuration.
To get started, here are a few relevant pages from the datasheets:
Some connections are fairly straightforward, such as +5v and Gnd. Others require a bit of reading to properly pair up. As an example, the Parker has positive and negative limit switches, whereas the Aerotech has clockwise and counter-clockwise limits. Similarly, the Parker motor phases are labelled UVW whereas the Aerotech's are ABC. The encoder channels of the Parker use an A/B naming convention whereas Aerotech prefers sin/cos, and the hall commutation order is not the same across both components.
Lining up the motor phases, encoder channels and hall sensors normally requires comparing the commutation diagrams for both components. If you are interested in this process there are several good tutorials available, but I was a little thrown by how Aerotech measures the motor phases relative to ground and Parker measures them relative to each other.
Luckily Parker's drives have a command called SETUPFB. To begin this process, the drive assumes the encoder and hall sensors have been wired incorrectly and drives the motor by powering one phase at a time as if it were a stepper. As the motor rotates, the drive monitors sensor feedback to "learn" how the motor has been connected.
With SETUBFB as insurance, we can mostly guess at what goes where. I chose to connect everything in order - UVW to ABC, A/B to Sin/Cos, and H0/H1/H2 to HA/HB/HC.
Before applying power, we need to enter basic information about the motor. Some of the parameters are fairly mundane, but the drive also takes into account other characteristics to help with gain adjustment. The datasheet has most of what we are looking for, although I had to guess viscous damping based on the average of other similarly sized motors.
There is just one last step before we can finally run SETUPFB - if you go back to the command reference you will see a rather stern warning that the motor should not be attached to anything. I wasn't sure if this would be a problem due to the integral motor design, but the motor/bearing assembly is easy to remove and can be conveniently disconnected from the limit switches via a connector.
We are finally ready for action. Type SETUPFB into the terminal and see what happens...
The SETUPFB command first asks you to rotate the motor shaft clockwise, then it spins the motor itself approximately one revolution.
I'm not sure why, but the SETUPFB command failed to adapt to my servos wiring. This could be because of the old firmware version, or the fact that I am using an IH drive configured for a rotary motor. It did still tell me which sets of connections were incorrectly wired, which allowed me to get everything working after about 6 iterations. Trying to brute force the connections requires testing 72 combinations, so the SETUPFB command was still a real lifesaver.
With the servo finally operational I discovered the default gains were quite weak. The servo runs a fairly standard PID control loop with additional feedforward and digital filtering. To tune the motor I repeatedly doubled the default gains until the servo went unstable and then backed off a bit.
To reassemble the stage I moved the table right up to the motor to keep the ballscrew centered. I then oriented the stage vertically so gravity would not pull on the motor during reattachment. This process is fairly standard for aligning ballscrews so I am not particularly worried about impacting the accuracy of the stage.
With the stage finally working I grabbed a test indicator to get an idea of performance. The whole stage is aluminium so I couldn't properly attach a magnetic stand, but it repeats <5um, with most of that error coming from the servo not reaching its set point. The gains still need some tweaking but I'll leave that for later. Just like the MX80L, the Aerotech ATS125 stage is designed for more voltage than my benchtop supply can provide.
Setting the servos up has taught me a huge amount about the Parker VIX servo drives and how to program them. Everything pretty much worked, but I had to read a lot of documentation along the way.
No comments:
Post a Comment