06-29-2017 05:37 PM
I am trying to follow the set-up guide here:
http://zone.ni.com/reference/en-XX/help/371093V-01/mclvhowto/howtoclosedloopstepper/
Scan Period is set to 10 ms currently.
When I command the axis is open loop mode with the feedback selected as NONE it works to get to position very nicely. We need to run in closed loop though to know we are in the correct position. When trying to tune per the above link, my Position Error never stabilizes, it just keeps going up and up.
Anything that might be causing that? When we disable the axis and spin it one rev by hand it shows 1 rev in the position feedback - so the encoder counts/rev are correct.
9512 running an Applied Motion STR3 stepper drive, LabVIEW 2016, SoftMotion 2016
06-30-2017 03:19 PM
Encoder issue. We're using a fancy new to use RLS magentic ring encoder - detector had moved.
07-17-2017 03:16 PM
I'm a little dismayed at the overshoots with a stepper motor in closed loop. We're telling it to move to a certain number of steps - how is it that the profile generator is generating extra steps?
07-18-2017 01:45 PM
Hi Ryan, is this behavior consistent every single time? How many extra steps is the motor moving? Have you seen the following KB yet?
Closed Loop Stepper Movement is Inaccurate: http://digital.ni.com/public.nsf/allkb/E315EF739926310B862572CF00805A51?OpenDocument
Angela L.
National Instruments
07-18-2017 01:52 PM
Good article - I didn't come across this because it is listed for the 73xx motion boards and not the cRIO 9512 implementation, but I can see the same would probably apply.
I do have more steps than encoder pulses. I will adapt the code to reduce the microstepping and see if that helps. We really dont need high microstepping on this project. My code was written to adapt to changing these settings so this shouldnt take too long to test.
Thank you.
07-20-2017 12:52 PM - edited 07-20-2017 12:54 PM
ok - I set the System drive (STR3) to 1600 steps microstepping and adjusted the Counts/Step settings in the Configuration Screen for the Stepper Config and Encoder settings pages and did the tuning per the guide. This put the Encoder Counts (2304 Quad) above Steps per the article suggestion.
I still am finding overshoot on the rotary motion (this system only needs to do rotary motion between 11 positions around a circle. Overshoot is really only at the large almost 180 degree moves. Moves can only be a max of around 180.
Switching to Open Loop with Feedback enabled is getting me the profile control I want from the stepper. The positions are hitting with no overshoot and I am able to read the encoder position to determine in code if I got to my target and try to move again if not (which hasn't happened since putting it in this mode).
It took me a bit to figure out how to assign the encoder once I switched the system to Open Loop. I need to use the Index on the Encoder as a homing point with a Find Index. Using the Property Node to set Axis > Axis Feedback Source was the key along with Axis > Stepper Axis Loop Mode = Closed Loop. Then once Index is found I can switch back to Axis >Stepper Axis Loop Mode = Open Loop and run with no overshoots.