Stepper Motor Feed To Length

Steve W

Member
Join Date
Oct 2003
Location
Connecticut
Posts
11
I searched for this and didn't find anything. It's not really a plc question, but there are so many folks that seem knowledgeable regarding this sort of thing, I thought I would throw it out there.
If there is a thread that explains this please direct me.

Here's my components:
Mitsu- Fx1s-10MT control
AMP- 3540m drive
AMP- HT23-400 motor


My drive roller is 1.275"

My drive is set to 2000ppr

Problem:

When I am pulling lengths of wire to mark them I feel that when I go one revolution of this drive roller the wire should move approx. 4", because that is the circumference of the roller. However it is coming about .070" short, and of course this is compounded when you try to go further than this.

Any thoughts.
 
Is there a clue here Steve? You say the target length is 4" ..."aproximately"...how aproximately??

Anyhow if the actual length is 70 thou short in 4", is it 140 thou short in 8"??. In that case the roller diameter may be too "aproximate".


Or is the the variation more variable than this? In that case you may have slippage between the roller and wire?
 
It look like problem with your set up your Pulse to circumference of the roller is not correct.that the reason you get short.
Or you hane mechanical slippage.of the wire.
 
Philip W and ArikBY, thanks for the replies.
Let me break this down a little to make it easier for you guys to help me.

There is defenitely not slippage, at least not enough to cause the problem I am having. Also, it is moving exactly the sane every time.

What doesn't make sense to me is that when i go 1 revolution of the motor, I am not moving the wire the exact circumference of the feed roller. Does this make sense?

If this does make sense, then what is the best way to compensate for the wire not travelling an even distance for 1 revolution of the roller? Shoulkd I be trying different roller diameters or should I be trying to do some crazy math in the PLC?
 
It make sense if you send less pulses then you need, add more
pulses until you get the right length.It might be math problem.
Consider again the slippage.It very common problem.
 
What doesn't make sense to me is that when i go 1 revolution of the motor, I am not moving the wire the exact circumference of the feed roller. Does this make sense?

Yup, makes sense to me. I'm thinking that your drive roll is compressing. Think about it. You've got to have friction to drive the wire.

When the drive roll pulls the wire, it's diameter is reduced. Unless the wire is wrapped around the drive roll and the roll is made of metal and doesn't compress.

Another thing that will give a repeatable offset is that your stepper motor will not stop at the same inter-step place the same time. you can be off by up to one native step (+/- 1/2 step) - 1/200 of a rev. for a motor that is 200 steps per rev. Never mind that you've set the drive for 2,000 steps per rev., any micro-stepping drive (AFAIK) will never position at exactly the same place inside of a full step.


Also, tell up how much short you are at 2 revs, 4 revs, ... does it add up to .070 per rev. ? If it's 0.70 no matter what length you pull, you may be slipping at the start.

Did you measure the feed roller ? 1.275 * pi (as 3.14159) = 4.00552725
 
If I am not mistaken, it looks like this is a typical open-loop stepper system. There is no feedback encoder, correct?

So you tell the motor to go 2000 pulses = 1 turn = 4.006". But you are 0.07" short. Which is 35 pulses.

Here is the question: how do you know that the motor did travel 2000 pulses, as it was commanded? Or the rotor slipped a bit and the actual travel was only 1965 pulses? This is not unusual with steppers, especially small ones (yours is NEMA 23, I reckon), especially when running at speed or trying to do sharp accelerations.

Look at the motor speed-torque curve. There is plenty of torque available at rest and at low speeds. Then the curve falls dramatically as you go faster. Or if you are trying to overcome inertia. Or if there is some mechanical binding. Or if, in order to avoid slippage, you have your drive rollers pushing too tight...

And yes, in a feed roller application there always will be some totalizing error, simply because of "pi" number involved. You can decrease it, but you cannot avoid it - unless there is some way to verify the actual wire position once a while (say, by reading some marker on wire insulation, by detecting a splice etc. May not be easy).

However, the best long-time solution here would be to spend a bit more money and to use a small servo instead of a stepper...
 
Well, JustDave, I have to take some exceptions to your statement: "When the drive roll pulls the wire, it's diameter is reduced. Unless the wire is wrapped around the drive roll and the roll is made of metal and doesn't compress."

1) Even if the roller is made of hardened steel, it will compress - whether the compression is negligible or not is another question. Even the hardened rollers in a roller bearing compress under load, and that is why they can spall or fatigue.

2) Whether the roller is made of steel or jello, the compression (deflection) of the roller doesn't change the circumference of the roller, and the travel per revolution is also unchanged. The deflection doesn't remove the material, it just mashes it out to the sides just like the tires on your car. The travel per revolution of your car tires doesn't change if they are underinflated and consequently deflect more.

And Steve, if your tension and coeficient of friction are consistent, your wire slip will also be consistent. I'm not saying that is your problem, just an observation.

I know these are picky things, but I'm killing time waiting for my wife, and it put me in a gnarly mood.
 
I'll skip the fact that you should be using a servo because steppers just plain suck IMO... ;)

I used to use steppers to index lining material. Key words, "USED TO"... (n)

Instead of figuring out how far it should move, or why it doesn't move as expected, just use the distance it really does move.

Assuming it's repeatable, just use the ACTUAL, MEASURED distance per revolution.

beerchug

-Eric
 
needs more details

Steve
Pilipw asked about the error is it fixed or poroportional to the length that you pull.Please calrify this point .also are you always pull the same lenght of wire (fixed) or you change this setpoin ?if so how can you change it (HMI for example)?.
I need to know also which device in your system take the stop descision is it the stepper or the PLC.if PLC what kind of PLC you are using ?are you using HSC in your PlC or not?what is the exact configuration of your plc?
please try to clerify this points in order to try to help you
Best luck
 
Wow, Alot of interesting information.

I slowed the motor down alot this morning, and I am pretty sure that we can rule out slippage.

The drive roller is steel with a fine knurl so that it won't damage the wire, and the wire I am pulling is normal hook up wire.

Yes, the error is consistent.

I know that a servo might be better for this application, but it really doesn't need to be that accurate.

I have know way of knowing for sure that the motor is moving the 2000 pulses.

I know this is not perfect but if I line up a the split in the coupling with a reference mark on the motor mount, it looks damn close to 1 revolution. This is where my confusion sets in why is it that the one revolution of the motor is not producing 4.005" of travel on the wire? Again, I realize that the motor may not be traveling exactly one revolution, but I would think that it would be alot closer thatn what I am getting.

And yes the distances need to be changeable, so whatever math I do to correct it has to be carried out to multiple revolutions of the motor.

I think my only solution is to play with drive pulley diameters until I get one revolution of the shaft to equal an even number as closely as possible.
 
I mmight be smokin' dope here, but....

The only way can con be sure you are not slipping is to nip your wire at the pull roll (assuming you are not wrapping it). For now I will assume you are nipping.
I will also assume you are pulling standard insulated wire. When you nip this wire it will tend to compress and elongate in both directions (get longer and wider). Assuming you don't nip hard enough to go into plastic deformation the wire insulation will come back to shape after it leaves the nip. However, you are 'measurlng' at the pull roll, which means you are measuring compressed, and therefore artifically longer, material. So when the wire comes out the downstream side of the nip it will return to it's uncompressed, shorter length.

Like I said, I might be way off here but you might want to look into this. If this is happening, the error will always be short. It will be proportional to wire feed length (twice as much error on a 4" wire than a 2" wire). It will also be related to nip force, but probably in a non-linear way.

Keith
 
Hi Steve,

Sounds like you're experiencing a combination of several problems, due to both the way you generate your motion pattern (bad frequency ranges) AND the µ-step mode your selected (torque losses).

1) Pay attention to the pulse generator values in your PLC. Actually if you're ramping your stepper from 0 hertz, you provide pulses within frequency ranges your motor can't properly follow. Depending on your instruction set this can be easy or not. Indicate please what kind of instructions you use in FX.

You selected a 10 micro-steps/step mode on your drive, meaning a 2000 hertz freq gives 1 rev/sec. Perhaps too low to avoid motor's vibrations (resulting in step losses...). Have your hand on your motor when starting. Does it run smoothly ? Do you feel vibrations or hear some noise ? Give details on your acceleration time. Notice that in such a mode your motor provides lower torque values. Could easily result in step losses when starting, depending on your mechanical data. Test as follows :

2) With your actual 10µstep/step mode, try to generate a pattern starting at 5000hz and ramping up to 20000hz in 500ms. Generate 10000 steps / 5 full revolutions. See if your system properly follows your pattern WITHOUT ANY WIRE FITTED. Only control if your roller moved 5 full rev. Increase your ramp. What changed ?

3) Now change your divider mode. Select an half-step mode (resulting in a consistent torque increase...). Generate 2000 steps / 5 full revolutions with freq. starting from 800/900 up to 2500/3000hz. What changed ? Did your roller better follow your pattern ? Increase/decrease your ramp time and frequencies in order to obtain the most accurate+fast motion.

Please give us some results.

Laurent
 
I'd like to thank everyone for their help.

We decided to change drive roller diameters so that when it goes a full revolution the wire is actually moving 4.0"

This will make it easier to keep the accumulated error down.

THanks again.
 
Be sure to let us know where you find a 1.27323954473516268615107010698011" diameter drive roller!... :D

beerchug

-Eric
 

Similar Topics

Hi everyone, This is my first time posting, so please forgive any omissions or mistakes. I am attempting to control the velocity of a stepper...
Replies
18
Views
1,006
I'm controlling an Applied Motion HW23-601D using a Leadshine EM542S connected to a 2080-LC50-48QBB, using CCW, and experiencing some weird...
Replies
2
Views
612
Hello. I am using the following: Eaton E4-AC-12RXP PLC I am trying to control the CL86T which controls a Closed-Loop Stepper motor. I am using...
Replies
3
Views
974
Not totally PLC related, but I figured this would be a good place to ask: I have an application where 7 small parts are being gripped and then...
Replies
19
Views
3,318
Hello all, I'm working with an s7-1200 and a stepper motor in Tia portal v17. This stepper motor is an SMD23E2 and I am attempting to connect...
Replies
19
Views
2,850
Back
Top Bottom