Motion Control and Motor Drives

cancel
Showing results for 
Search instead for 
Did you mean: 

SoftMotion Stepper Control issue at low speeds

I downloaded the Soft Motion software and tried one of the example projects in it, namely the "Stepper Interface (9401).lvproj". I am using a cRIO-9074 with a single NI-9401  (single axis stepper motor control only). I recompiled the example for the cRIO target, and ran it. I set the velocity (steps/s) to a low value of 100. I noticed that the motor was moving in a very jerky fashion. It will turn a 1 or 2 degrees very fast, then stop for a while (about 1/2 second pause), then turn another 1 or 2 degrees fast and so on. 

 

After reading the 9401's step outputs with a high-speed DAQ module, I found that the 9401 is sending a rapid burst of step pulses, then quiet for about 1/2 second, then rapid burst of step pulses, quiet. This pattern continues for the entire move, and sort of explains the jerky motion I saw on the motor.

 

But why are the pulses being generated in bursts like this? Has anyone tried to use this example successfully?

 

Interestingly, when I increased the velocity (to 500, 5000, or even 50000 steps/s)  I noticed that the output pulses from 9401 become regular but only after the speed increases above 400 steps/s. But during accel and decel the bursts are present below 400 steps/s velocity. It is almost like 400 steps/s is the threshold. Below this velocity, the pulses are very erratic and high frequency and causes the motor to sputter and jerk.


I suspect that this problem will go away if I use the 9512 stepper control module. I think 9512 module itself calculates the step pulses rather than the FPGA VI as in the case of 9401.

 

Thank you!

0 Kudos
Message 1 of 10
(3,548 Views)

Hello RagMan,

 

Did you download SoftMotion Lite or the full SoftMotion module? Because the 9401 is not actually supported on SoftMotion Lite, which might be why this is happening. The 9512 would be supported on both SoftMotion and SoftMotion Lite.

 

Cheers,

Eric

Applications Engineer

0 Kudos
Message 2 of 10
(3,509 Views)

Hi Eric

I downloaded the Evaluation version from NI. I assume it is the full version during the Eval period.

The code for 9401 and 9512 looks very different. the 9401 being just a DIO module, needs the FPGA VI to calculate the steps. But 9512 seems to be capable of calculating this on its own.

Thanks for your help with this issue.

 

 

0 Kudos
Message 3 of 10
(3,506 Views)

Can you try adjusting to have a faster NI Scan Engine scan period? It might be choppy because the scan rate is slow.

 

Eric

Applications Engineer

0 Kudos
Message 4 of 10
(3,495 Views)

Hi Eric

Thanks for your suggestion.

The Example I used (9401 Stepper) has the Scan Engine Scan period set to 5 ms.

I tried to lower it to 1ms, but could not get it to run at all. I was able to get it to run at 3ms, but there was no improvement in the jitter.

Then on a whim, I set it 10ms, and now it is working nicely. I get smooth pulse output at all velocities down to 1 step/s all the way to 100000 steps/s.  Does this make any sense why slowing down the Scan Engine makes it better, or is that what you really meant when you said "faster Scan Engine period"?

 

0 Kudos
Message 5 of 10
(3,479 Views)

Can I see the full configuration settings for your axes?

 

Also, what motor and drive are you using? How many steps are you taking when observing this behavior?

 

Eric 

Applications Engineer

0 Kudos
Message 6 of 10
(3,468 Views)

Hi Eric

I am enclosing screen captures of the Axis settings in the enclosed word file.

 

I noticed a new issue today. After increasing the scan period from 5ms (default) to 10ms I now notice pauses in the step pulses. For example if I set the velocity to 1000 steps/s, it will output steps at this rate for a while (say 3-4 seconds) then pause for 1 or 2 seconds with no steps, then continue at 1000 steps/s. So 10ms also causes jerky motion but just the opposite kind. (if you remember my original issue as at 5ms the jerky motion was at low speeds).

 

The motor I am using is an Applied Motion Products model STM23S-3AE. Here is its URL

https://www.applied-motion.com/products/integrated-steppers/stm23s-3ae

 

Note that I am not connected to the motor during my tests anymore. I am observing the step output of the 9401 module using a second digital IO module (NI 9402). So I don't think this is a motor issue.

 

Thanks for your help!

 

 

 

0 Kudos
Message 7 of 10
(3,461 Views)

I forgot to answer your question "How many steps are you taking when you observe this behavior"?

The answer is, it varies.

At 1000 steps/s if I take short steps (say less than 10000) then the move is continuous. If I take longer steps, then I observe short pauses in the move.

0 Kudos
Message 8 of 10
(3,460 Views)

Hi Eric

I have added screen captures showing the discontinuity in the move at any velocity. Hope this is helpful to understand the issue.

 

Thank you!

 

(Note: I am using the Scan Engine Period of 10ms. If I used the default Scan Period of 5m, I get a different discontinuity. So it seems that the move is very sensitive to Scan Engine Period)

 

0 Kudos
Message 9 of 10
(3,456 Views)

Hi,

 

I noticed you set up the stepper motor as 25000 Steps/rev. That means your unit is currently rev so if you request 25 in the velocity control, you are actually requesting 25 rev/s. Same for the position control (1000 revolutions instead of 1000 steps).

 

You can also try leaving the acceleration and jerk parameters on zero (default) and that will allow Softmotion calculate the values based on the specified smoothing.

 

Regards!

 

0 Kudos
Message 10 of 10
(3,396 Views)