stepper motor |

Tuesday, February 16, 2010

stepper motor

A stepper motor is a motor that does just what its name implies...
it moves by 'stepping', just like we do... well kinda like we do anyway. We don't walk (i.e. step) in a single fluid motion. Rather we move in a start/stop type of motion whereby we move a leg and then stop
it and then move another leg and stop it. By repeating that process we move a certain distance.

A stepper motor does something similar to our walking. It moves a few degrees and stops. Moves a few degrees again and stops. As you cannow understand, it is not continuous movement. Instead, it is start/stop
movement. Move, stop, move, stop, move, stop, etc.

On the other hand, a 'typical' motor does not work that way. A typical motor (is there really such a thing as a 'typical' anything??) does not work that way. Nope, we just give it a voltage and it spins away as long as the voltage is there. Nice and fluid motion as opposed to our start/stop motion in the stepper motor.

So, we can think of a 'typical' motor as an analog motor and a stepper  motor as a digital motor. The analog motor can vary position at any point in its movement. The digital motor can't vary its motion to any point but rather can vary within predetermined distances.

How does it know where to move to? That's a good question. It needs to have a driver. The driver controls its movement. It gets movement data (i.e. pulses)from a device capable of generating pulses. More often than not the pulses come from a plc, of course. The plc often has single axis capability built into it but in recent times there are also extension modules that plug in to the plc base unit and give it the capability to control more than one axis.

The pulses coming out of the plc are received by the stepper motor driver. The driver converts each pulse it receives from the plc into'motor motion'. If the motor moves 1 degree for every step and the plc sends 5 pulses the motor will of course move 5 degrees.

How about speed? Well that will depend upon how fast we can generate the pulses out of the plc. Trouble is, we can generate the pulses real quick out the plc... many times too quickly. Too quickly because we need to remember that the stepper motor moves like we do. Why does that matter? Let's see...

We can't just go from standing still to an all out sprint speed. Even the fastest runners in the world can't start from a standing still position and be instantly at sprinting speed. The reality is that they  need to gradually move faster and faster until they get to their all out sprinting speed. Once the runner is at full speed they will continue at that speed before stopping.

The same thing will apply to stopping. The runner can't just go from a full all out sprinting speed to a full stop. (unless he runs into a brick wall... ) The stepper motor has the same issue. It can't just go from a 'cruising speed' to a dead stop. It needs to slow down gradually.

So, to get around this 'fact of life' we start running slowly while gradually building up our speed until we get to our maximum cruising speed. Before coming to a complete stop we also slow down gradually.

Same thing for the stepper motor. We send out pulses at a slow speed and then gradually increase the speed of the pulses until we get to the maximum speed we need to cruise at. Then we send out slower  pulses until we safely bring the stepper motor to a complete stop.

This starting slow and finishing slow type of motion is called ramping the motor. We slowly ramp up to speed and then we slowly ramp down to speed. This is a 'must' when using stepper motors. If you don't do this your motor may stall instead of move. That would be bad...

How do we create this ramping functionality? No worries, the plc will take care of creating 'the ramp' for you. Generally you just need to give the system some basic parameters such as the number of pulses to generate and the maximum speed.

So, if the system needs to be complex enough to have a special plc module or programming functionality why do we need it? Why not just use a 'typical motor'?

The answer is simple. Precision. When you need to move a semi-precise  distance you need something like a stepper motor. A 'typical' motor will not give you the same or even close to the same precision as a stepper motor will give you. On the other hand, if you need speed or ultra-high precision movement a stepper motor might not be the best choice for you.

So, what qualifies as semi-precision? Generally, a stepper motor with  high precision would be capable of moving about 500 steps per revolution. That equates to about 0.72 degrees for every step. (i.e. 360degrees / 500steps = 0.72 degrees per step) We can also do what's called micro-stepping whereby we can get approximately double that precision. To do that we move in half-steps with a more capable motor driver. But if you need high-precision movement there are some better motor options. More on that next time...

Related Post

No comments:

Post a Comment