CRAZY STUFF 3
Posted by
Arne Chr.Jorgensen
on 1999-12-16 17:13:05 UTC
Hi,
I did receive a email about my "crazy stuff" - and just would like
to come with a few added
comments:
Here is a few problems with it:
1. Any encoder on a stepper motor, will in fact give some trouble
( IMO) because for each step,
they will "rock" a bit - back and forth. This may be be read as a
movement on an encoder. You
will need an encoder chip that has a digital filter, in order to
get correct readings. All chips made
to read encoders, has this. It is working as a state table,
excluding any state transitions that is not
correct. The problem I am pointing out, is that you either need a
ready made "decoder" or this
has to be part of the circuit.
2. If the step motor driver, runs in half step, - things should
be easy. If not, then there might be
some timing problems that may not make this an easy add on, but
needs to be "tuned" to the
specific setup.
3. It is possible to make all of this, but it may include a lot
of different logic to work as you would
like it to. Say that you have lost some steps when the X axis
goes in a positive direction. Then
it will receive commands to go in the negative direction again.
What you want it to do, - is to
first go to the commanded position in the positive direction,
before it change to go the other way.
This is a major problem, where you would want some memory and
logic in order to be sure it don't
skip those lost steps.
You may solve this in on of two ways:
A: A sophisticated control
B: A stupid simple control, - where you may loose some of the
more correct and fancy options.
I have been more concern with the last one. Some simple thing that
most could make working,
with just a few circuits. Here is a few words about that:
B1. As long as you just have lost one step, - it should correct
it. It may loose many more. Let
say you loose steps in a X axis positive travel. You often may
lose steps because of binding
friction, an external tool force, or just because of
acceleration. But if the travel is long enough in
this direction, it should be able to work this out pretty good.
If it works in half-step, then
switching to full step, will double the speed, meaning: If you
loose 10 steps because of initial
binding, then it will be corrected in 10 more steps. In other
words, this should work out nice
in most situations.
You also will have a detection from the first lost step, and in
full step mode, you have increase of
torque. So in many cases, it would correct the problem in less
time. Maybe even in one
single step.
B2. In the above situation, you may have this condition toggle a
led or something. This could be
a nice thing, because you may have an early warning that you have
the feed rate too high.
B3. The main idea, came from something Jon Elson said. ( I can't
recall it - but it was something
about hitting a tool post, or other object, because you had lost
steps, and the axis was off in
position ) Well, the idea was to disable the motors, doing an
E-stop or what ever, if the lost
steps became more than what you would set as a limit value, or
E-stop value. To prevent any
real damage to the work piece or machine.
B4: My objective was to have some very simple circuit, not to make
a full closed loop controller,
and it should work with any software and machine.
In closing:
If I should make such a device, I think I would make a dedicated
microchip do the job, but I think
there should be a lot of designs possible with just a few simple
TTL circuits, something most
could do some experiments with. For some, just an E-stop function
might be what they would
need. ( I guess I would make a software "step motor" and counter,
instead of a separate motor,
but - this is not necessary )
There might also be lots of other ways to make such a circuit,
without optical encoders.
C
I did receive a email about my "crazy stuff" - and just would like
to come with a few added
comments:
Here is a few problems with it:
1. Any encoder on a stepper motor, will in fact give some trouble
( IMO) because for each step,
they will "rock" a bit - back and forth. This may be be read as a
movement on an encoder. You
will need an encoder chip that has a digital filter, in order to
get correct readings. All chips made
to read encoders, has this. It is working as a state table,
excluding any state transitions that is not
correct. The problem I am pointing out, is that you either need a
ready made "decoder" or this
has to be part of the circuit.
2. If the step motor driver, runs in half step, - things should
be easy. If not, then there might be
some timing problems that may not make this an easy add on, but
needs to be "tuned" to the
specific setup.
3. It is possible to make all of this, but it may include a lot
of different logic to work as you would
like it to. Say that you have lost some steps when the X axis
goes in a positive direction. Then
it will receive commands to go in the negative direction again.
What you want it to do, - is to
first go to the commanded position in the positive direction,
before it change to go the other way.
This is a major problem, where you would want some memory and
logic in order to be sure it don't
skip those lost steps.
You may solve this in on of two ways:
A: A sophisticated control
B: A stupid simple control, - where you may loose some of the
more correct and fancy options.
I have been more concern with the last one. Some simple thing that
most could make working,
with just a few circuits. Here is a few words about that:
B1. As long as you just have lost one step, - it should correct
it. It may loose many more. Let
say you loose steps in a X axis positive travel. You often may
lose steps because of binding
friction, an external tool force, or just because of
acceleration. But if the travel is long enough in
this direction, it should be able to work this out pretty good.
If it works in half-step, then
switching to full step, will double the speed, meaning: If you
loose 10 steps because of initial
binding, then it will be corrected in 10 more steps. In other
words, this should work out nice
in most situations.
You also will have a detection from the first lost step, and in
full step mode, you have increase of
torque. So in many cases, it would correct the problem in less
time. Maybe even in one
single step.
B2. In the above situation, you may have this condition toggle a
led or something. This could be
a nice thing, because you may have an early warning that you have
the feed rate too high.
B3. The main idea, came from something Jon Elson said. ( I can't
recall it - but it was something
about hitting a tool post, or other object, because you had lost
steps, and the axis was off in
position ) Well, the idea was to disable the motors, doing an
E-stop or what ever, if the lost
steps became more than what you would set as a limit value, or
E-stop value. To prevent any
real damage to the work piece or machine.
B4: My objective was to have some very simple circuit, not to make
a full closed loop controller,
and it should work with any software and machine.
In closing:
If I should make such a device, I think I would make a dedicated
microchip do the job, but I think
there should be a lot of designs possible with just a few simple
TTL circuits, something most
could do some experiments with. For some, just an E-stop function
might be what they would
need. ( I guess I would make a software "step motor" and counter,
instead of a separate motor,
but - this is not necessary )
There might also be lots of other ways to make such a circuit,
without optical encoders.
C