Motion Control and Motor Drives

cancel
Showing results for 
Search instead for 
Did you mean: 

Stepper Overshoot

Hi,

I've a problem with a stepper over shooting. I have a few steppers doing the same thing but this one is off. When I zero all my steppers (ie. bring them back to the home position sensor and reset the encoder count) it is in the correct position. However, when I move this motor and an identical one beside it by the same amount this one creeps forward a few degrees more. It's giving me an inaccuracy in the system that I could do without. I'd rather not just put in a constant offset to correct for it since the overshoot can be different twice in a row for the same command. I'm using a PCI-7344 and as far as I can see all the settings in NI-MAX are the same as for other motors that work fine

 

Anyone seen anything like this before?

Thanks.   Robot Sad

0 Kudos
Message 1 of 8
(5,079 Views)

Hi,

 

are you running your axes in open loop or in closed loop mode? Could you please provide some more information about your system? Which type of motors and drives are you using?

 

Thanks,

Jochen Klier

National Instruments

0 Kudos
Message 2 of 8
(5,075 Views)
Closed loop. The motors have 400 steps per revolution (using half stepping), encoders have 2000 counts per revolution, I'm using step and direction and the drivers are MSE570 boards by Mclennon. I have forward and reverse limit switches and a home switch. Hope this helps.
0 Kudos
Message 3 of 8
(5,071 Views)

I could think of various issues here, but I still need some more information:

  1. Does the problem also occurr in open loop mode?
  2. Are you 100% sure, that the settins for stepper steps per revolution and encoder counts per revolution are entered correctly in MAX?
  3. Do you see any following error during the move and after the move is finished?
  4. Does the number of steps generated and the encoder signal stay in sync? Related question: Is there a chance, that the encoder signal gets heavily disturbed by noise?
  5. What's the status of the axis after while creeping and after it has stopped creeping?
  6. What's the distance the axis creeps?
  7. What NI-Motion version are you using?

Sorry for all these questions, but without this information it's hard to know exactly what's going on.

 

Thanks,

Jochen

0 Kudos
Message 4 of 8
(5,064 Views)

Hi,

Thanks for the reply. I've had a chance to do some testing.

 

1. No. I suppose this means it's a problem with the encoder then?

2. Yes.

3. No.

4. I've been testing for moves of 1000 steps, which should be 5000 counts of the encoder. However, in both open loop the encoder changes by around 4950 - 4970 and in closed loop by around 4820 - 4840. I notice also that in open the loop the steps always change by 1000 but in closed loop it's around 990 - 995. I suppose it is possible that there is noise on the line. I'll see if I cancheck for this.

5. Same as when it is moving normally.

6. It's hard to tell exactly. It varies. I would say around 20 steps though.

7. I actually don't know. Where do I find that out?

 

 

Thanks.

0 Kudos
Message 5 of 8
(4,974 Views)

This definitely sounds like serious trouble with the quality of the encoder signals. How do you connect the 7344 to the drive? Are you using an UMI (which type)? Does your encoder provide differential or ground referenced signals?

 

Apparently the position counters of the 7344 count too few pulses. Have you changed the filter settings for the encoder in MAX? What's the value of the Filter Frequency parameter and what's your velocity in steps/s?

 

You can find the NI-Motion version in MAX in the "Software" section.

 

Regards,

Jochen

0 Kudos
Message 6 of 8
(4,969 Views)

I'm using a UMI-7764. The encoder has three channels and an index pulse ie. differential. I haven't touched the filter settings and they are the same for this axis as the others ie. 100kHz. The velocity is set to 4000 steps/s for all axes. If the encoder was counting too few pulses wouldn't I get  following error or is it just that it's too small to trigger an error but big enough to be inaccurate? I had a problem with a faulty encoder before that triggered a following error when moved. I'm using NI-Motion 7.6.0.3000.

 

Regards.

0 Kudos
Message 7 of 8
(4,941 Views)

There seems to be a misunderstanding concerning the following error. The following error is an integer value that indicates the difference between the real position and the theoretical position during runtime. In NI-Motion you can allow a maximum following error. The default value is 1000 counts. If the following error exceeds this value, a modal error is generated and the axis is killed. In your application this condition is obviously not met. Still you should be able to monitor the following error while the axis is moving (e. g. on the Advanced tab in 1D-Interactive in MAX).

 

To find out, if your motor really looses steps or if the encoder is causing the problem, please initiate a move in open loop mode and measure the physical distance your axis has travelled. By considering leadscrew pitch, stepper resolution, microstepping and gearing, you should be able to find out, if your axis has reached the correct position or not. If it has reached the correct position, something is wrong with your encoder. If it has failed to reach the correct position, there must be an issue with your motor (current limit, friction,...).

 

Jochen

0 Kudos
Message 8 of 8
(4,936 Views)