Motion Control and Motor Drives

cancel
Showing results for 
Search instead for 
Did you mean: 

WHY IS MY MOTOR MOVING INACCURATELY

I have a 4-axis application, X, Y and two Zs. All axes are stepping motor drives with 400 steps/rev, and all have encoders with 4000pulses/rev. The encoders are coupled directly to the shafts of the motors, so there is no backlash. The two z drives are identical in form and function. I am running NI-motion on a 7334 card with LAbVIEW 7.1.

Onlyrun three axes are in motion at any time, one axis is always static (usually Y). The 3 axes in motion are configured as a vector space and are controlled in a for loop with a basic LOAD VECTOR SPACE POSITION- BLEND-WAIT FOR BLEND COMPLETE loop. The x-axis has approximately 2 metres of travel, the z-axes have approximately 150mm of travel but, in general, requiured z-axis travel is much less than this. The application has the x-axis running back and forth while the z-axes describe a gentle curve. 

Over the 2m of the x-travel, one z-axis works fine - accurate to within 1/2mm. The other z-axis gradually loses its way, at the end of the x-stroke (2m) it may be in error by as much as 5mm, and then, at the final move, it suddenly corrects itself and moves the 5mm back onto the desired path. That is, the accumulated positioning error is corrected all at once on the final iteration of the for loop. What is going on? The deadband is set at 5, which equates to about 0.5mm movment in the z-axis. If I set the deadband lower than this, the whole thing hangs up.

The application appears to be doing two things:  1) Ignoring the deadband setting 2) Ignoring the wait for blend complete.

The annoying thing is that one z-axis works beautifully, the other is very inaccurate, yet they are identical (though mirror images of each other).

Any ideas?

 

Len

 

    

 

0 Kudos
Message 1 of 2
(3,174 Views)

Len,

 

it sounds like you are using your axes in closed loop mode. In this mode the axes compare the current position with the commanded position at the end of the move. The last move, that you see is a pull-in move which occurrs, if the axis looses steps during the move. Here is a good document that describes closed loop operation in detail.

 

As another axis is working fine with the same settings, I don't think that in your case there is an issue with wrong encoder settings, but you still should check them. If a pull-in move is performed, your axis looses steps for some reason. This could be too high acceleration values, friction or other mechanical issues. On the electrical side you should watch out for noise that could interfere with the digital control signals or too low current limit settings at your drive.

Do you see the same behavior with lower acceleration and velocity values?

 

Kind regards,

Jochen Klier

National Instruments

0 Kudos
Message 2 of 2
(3,173 Views)