One of the cool features of the SureServo2
system is it can be set up as an absolute positioning
system that keeps track of the encoder position even when there is no power applied to the
servo system! It uses the exact same drive and motor except
we add a small battery box that maintains the encoder position during a power outage.
All SureServo2 encoder cables have this little connector on them, you just plug the battery
box in there. There are a couple things you need to know
to set it up, so let’s walk through it. We need to install the battery pack and learn
a neat trick for replacing the battery. Determine the home position of the absolute
coordinate system. We can do that using any of the built-in homing methods, using digital
inputs or via parameters. Learn how to use absolute coordinates with
a special eye on the limits of absolute positioning and
review a list of things you need to be aware
of. Here we go.
This is the battery box. Since all SureServo2 encoder cables have the battery connection
built in near the drive end of the encoder cable, you just open the battery box, loosen
this screw and clamp the encoder cable in here. I like to do that first because it holds
the battery box in place while I’m working on it. Plug the cable connector in here in
connector J2. Make sure you are plugging it in this J2 connector. That might not be obvious
if you don’t have a battery plugged in yet. Close up the battery box and you are ready to go.
When it comes time to change the battery out, here’s a little trick that will save you
time and ensure you maintain the absolute positioning data. Open your new battery box
and remove the battery. Then open the existing battery box and swap batteries. This capacitor
will hold the voltage for a while – I think the manual says 10 minutes - but if you can,
replace the battery while the system is powered. That will ensure you don’t lose the motor's
position regardless of the state of the battery. Close up the battery box and you are good
to go! This also saves you the time of uninstalling
and re-installing the cable clamp and possibly
installing the encoder cable in the wrong socket.
How do you know when it’s time to replace the battery? The drive will issue an AL061
or possibly an AL06A alarm when the voltage is low. If the battery voltage falls below
2.7 volts you might lose your motor's position. The low battery alarms occur at 3.1 volts
so that’s your best indication it’s time to replace the battery. Beware though, this
is a lithium battery. Unlike alkaline batteries, which slowly degrade, once lithium batteries
start to go, they go quickly, so don’t put off changing that battery when you get one
of the low battery alarms. Next, we need to set up the home position of
our absolute positioning system. Of course, absolute positioning only makes
sense when you are in position register mode. You don’t have an absolute position in speed,
torque or even pulse terminal modes. So I’ll go to parameter 1.01 and set it to a 1 to
change the drive to position register mode. And the drive reminds us to do a power cycle.
It’s really important to remember to power cycle the drive after any mode change. If
things don’t work, it’s usually because you forgot to do that power cycle.
In position register mode you can always execute a homing path to use one of the built-in homing
procedures. There’s a whole video on how to do that so we won’t spend time on it
here, but it’s this guy in the Free SureServo2 Pro software where you can see all the homing
options. The nice thing about the built-in homing is you can have the drive find the
home position for you which means you don’t need an external controller to run absolute
positioning! If you ARE using an external controller, you
have three options for finding the home position: You can trigger this homing path remotely
by writing a 0 to parameter 5.007 and let the drive find the home position using one
of the built-in homing routines. Again, see this video to learn about those.
You can use digital I/Os to mark where home is, or you can read and write to parameters
via any of the available communications methods. To use the digital IOs, first, you need to tell
the drive you want to use it in absolute positioning
mode by setting the lower digit of parameter
2.069 to a 1. And the drive reminds us to power cycle the drive for that to take effect.
Remember, you always need to power cycle the drive after a mode change. I’ll do that and we get an alarm code of 6A. Alarm 6A reminds us that the absolute position
has been lost either due to a loss of battery power or in this case – we haven’t set
it up yet. So let’s set that up using the digital I/O
method. Now, instead of wiring up a controller or even
toggle switches, let’s use the Free SureServo2 Pro software to simply force the digital
inputs. You can download a fully functional
free version of the SureServo2 Pro Software at Automationdirect.com.
I’ll connect to the drive - let me re-adjust the window so you can see everything and
read the system info so you can see what hardware I am using. I’ll also read the drive's parameters
into the workspace. Bring up the digital I/O dialog. Looks like digital inputs 9 and 10
aren’t used so we could use those, but instead let’s use the virtual inputs.
Enable editing. Select input 11 and change it to the absolute
coordinate system enable [0x1D]. “A” means it’s a Form A or normally open contact which
is what we want. Hit OK to accept that change. Select input 12 and change it to be the coordinate
system clear bit – that clears the encoder and user pulse counts to set the new home
position. And again, we want the “A” or normally open contact, so I’ll hit OK to
accept that. Disable editing and click these checkboxes
to enable software control of those bits. Click this guy to enable the absolute coordinates
and when I click this guy to set the home position we see the absolute position alarm
goes away. I’ll bring up the user pulse count and rotate the encoder one full rotation.
Remember, the SureServo2 drive defaults to 100,000 pulses per revolution and sure
enough if I press the left arrow key to see the upper half of this 32-bit number, yep
we’re at one hundred thousand – press the left arrow again to go back to the bottom
digits – and some change. I’ll move that back to roughly halfway and power down the
drive. Reapply power, bring back up the user pulses
and sure enough, the encoder count was maintained through the power cycle. Cool.
Let’s power down again, and this time move the encoder an additional roughly quarter
turn while the drive is powered down. Power back up. Bring back up the user pulse count
and yep, exactly what we expected. The encoder kept track of its position even though
the drive wasn’t powered. Perfect. If I reconnect to the drive and enable access
to the absolute coordinate system, then set the clear bit, the absolute coordinates get
reset to zero. Perfect. Let’s disable the virtual I/O and see how
to enable the absolute coordinates via parameters. Let’s rotate the encoder to get a non-zero
encoder count. First set parameter 2.069 to a 1 just like
we did for the digital I/O – that enables the absolute system. We already did that in
the previous example so we don’t need to do it again.
Next, we go to parameter 2.71 and set it to a 1 to set the home position. Oops! The drive
reminds us that parameter is locked! So we go to parameter 2.008 and set it to a 271
to enable parameter 2.71. And it tells us we unlocked parameter 2.71.
Now if we go to parameter 2.71 and set it to a 1 – ahh, we didn’t get the locked
message, that’s a good sign and get back to the pulse display - yep, we are
at zero. If I rotate the shaft, then go to parameter
2.71 to try to clear that to the home position again – nope – you have to unlock parameter
2.71 each time you use it. That helps ensure you can’t accidentally reset the home position
while the system is running. Do you have to reset the home position to
zero? Nope. When you reset the home position it actually uses the value that is stored
in parameter 6.001. That defaults to zero which explains why we got zero in our demos,
but if you need an offset when you mark the home position put it in parameter 6.001.
That was a quick intro to using the absolute encoder system. Chapter 10 of the user manual
walks you through all the options and highlights some of the subtleties you need to be aware
of. The best part is this table in section 10.4
has a summary of all the relevant parameters used in the absolute encoder system.
That section also has a convenient list of all the associated error codes.
You might be thinking, I can already do absolute positioning in position register mode by selecting
this in my paths – why do I need all of this? The answer is, yes you can do absolute
position in position register mode – but, the position won’t be remembered after a
power cycle and you will have to re-home the system.
By using this, the system will be configured to take advantage of the battery backup and
retain the encoder position! And yes, you can still use the incremental
or relative moves when you are in the battery backed up absolute positioning mode.
We have been looking at pulse user units – the number of pulses per revolution as set by
the electronic gear ratio – there’s a whole video talking about how to set that
up. You can view that 32-bit count in parameter 5.051. Just know that is NOT a live update
– you have to write a 1 to parameter 0.049 to update 0.51, then read the new value in
parameter 0.51. Of course, since it is a 32-bit number, you
are limited to 2 billion pulses in either direction. If you exceed that, the drive will
issue alarm 289. There is a catch, regardless of gear ratio,
shaft rotations are limited to a 16-bit
number or 32 thousand rotations in either direction.
If you exceed that you will get an alarm 062. You can disable both of these alarms in parameter
2.070. You can also view the position in native pulses
– the full 16 million pulses per revolution. In this mode the number of shaft rotations is
stored in parameter 0.052 and the partial shaft rotation is stored in parameter 0.51.
So your total position would be parameter 0.052 time 16 million, plus whatever partial
rotation pulses are in parameter 0.051. Parameter 2.070 controls whether you are using
pulse user units or native pulses. Well, that ought to be enough to get you started
with absolute positioning. Again, check out chapter 10 of the user manual for all the
details. Meanwhile, click here to find more SureServo2
video tutorials. Click here to learn about AutomationDirect’s free award-winning support
options. And click here to subscribe to our YouTube channel so you will be notified when
we publish more videos like this.