05-14-2016 02:58 PM
Hi everyone,
I am using the NI 9503 module with a 9006 cRIO to controle a stepper motor using this module to rotatate a number of steps (480 steps) then change the direction of rotation. The frequency of the phase signals should be 200Hz. What I need is a simple drive in open loop. No need of torque smoothing, anti-resonance coefficients, correction angle... etc.
I'am trying using the project example in Labview "NI 9503 Stepper Drive Position Setpoint". I modified it so I can fixe the duty cycle for each phase as a parameter (to 50%). Please find attached whole my project.
The issue is when I run it, the generated signals have a duty cycle less than 50%. You can find oscilloscope captures in the folder "Captures". I dont know what is the problem. Please help me. Thank you very much.
I have Labview 2014 and SoftMotion toolkit.
Best regards
Solved! Go to Solution.
05-23-2016 03:31 PM
If you look at the 9503 help, you will see that the minimum high pulse for any phase is 500usec. If you are trying to do 50% duty cycle at 200Hz then you are going to be holding each phase high for 2.5 msec. The module will enforce its minimum high pulse of 500usec by forcing the phase low until you command a low pulse. Then it will allow the duty cycle to go high again. This means that you shouldn't use a PWM frequency less than 2 kHz.
I would highly recommend using one of the shipping examples to move your motor. The position setpoint example is a great place to start. You can simplify that example by right clicking on the Motor Current Scheduler and selecting Basic --> SIngle. Delete any resulting broken wires. Then you can delete the Anti-Resonance VI and delete any resulting broken wires. The remaining diagram is probably as simple as you can get and still get accurate, repeatable motion.
Thanks,
05-24-2016 03:18 AM
Hi Paul,
Thak you for your assistance.
My need is to drive a motor with 200Hz as frequency. Can we generate an output signal that will have this frequency by playing on its duty cycle? The idea is to generate a 2kHz PWM signal with duty cycle of 99% for a the half period ( 2.5ms at 200Hz) and then change the duty cycle to 0% for the second half period. and so on. I think this way we can have a resulting signal of 200Hz.
But the challenge is how to generated 4 output signals? and how to change the direction of rotation ?
Best regards
Lahcen
---------------------------------
05-24-2016 09:43 AM
Before we go any further, let me try to clarify your requirements. You say that you have to drive a motor with 200Hz as frequency. What does this mean? I think you may be confusing step frequency and PWM frequency. The standard stepper experience is to provide step and direction signals to a stepper drive. The frequency of your step signals will determine how fast the motor moves. Very few stepper drives will actually allow you to control the PWM frequency like the 9503 does. So is your requirement for a 200Hz PWM signal or a 200Hz step signal? I suspect your requirement is a 200Hz step signal and therefore you shouldn't concern yourself with the PWM generation.
To generate a 200Hz step signal, go to the Spline and Current Generation Loop on the FPGA VI and remove the spliner. Then wire an I32 control to the 'position setpoint' input of the Step Resolver VI. Every time you increment the value of that control by 1, the motor will take 1 step. This should allow you to achieve your 200Hz step frequency.
Thanks,
07-10-2018 04:15 AM - edited 07-10-2018 04:38 AM