From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

Motion Control and Motor Drives

cancel
Showing results for 
Search instead for 
Did you mean: 

9512 Scan Engine Softmotion - Calculating Delay - Closed Loop

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

Ryan Vallieu CLA, CLED
Senior Systems Analyst II
NASA Ames Research Center
0 Kudos
Message 1 of 6
(2,966 Views)

Encoder issue.  We're using a fancy new to use RLS magentic ring encoder - detector had moved.  

Ryan Vallieu CLA, CLED
Senior Systems Analyst II
NASA Ames Research Center
0 Kudos
Message 2 of 6
(2,914 Views)

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?

Ryan Vallieu CLA, CLED
Senior Systems Analyst II
NASA Ames Research Center
0 Kudos
Message 3 of 6
(2,845 Views)

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 

0 Kudos
Message 4 of 6
(2,842 Views)

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.

Ryan Vallieu CLA, CLED
Senior Systems Analyst II
NASA Ames Research Center
0 Kudos
Message 5 of 6
(2,839 Views)

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. 

Ryan Vallieu CLA, CLED
Senior Systems Analyst II
NASA Ames Research Center
0 Kudos
Message 6 of 6
(2,802 Views)