So Jon, how does your universal stepper controller
interface with EMC? How does EMC tell the X axis to move some amount and
that get translated through the parallel port to your controller? Did you
write a driver for EMC and your card?
Sounds interesting, and I could still use the Gecko
drives.
Richard
----- Original Message -----
Sent: Tuesday, October 01, 2002 11:21
AM
Subject: Re: First time EMC user
(introduction)
Richard Everett wrote:
Hi
Jon, I think I am in big
trouble. I looked at the fanuc motor encoder on my mill, and it said
2500 counts/rev. I thought to myself, wow! 2500 counts in
quadrature, thats going to be a lot of steps/inch. I loaded up emc
with steppermod.o selected, and input and output set to 2500, velocity set
to 5. I hooked up the gecko 320 drive to the motor and parallel port,
and directed emc to move 1 inch. The motor rotated exactly 1/4
turn! My dang encoder is TEN THOUSAND steps/rev in quadrature!!!
My ballscrews are 5 turns/inch, so I am going to need 50,000
steps/inch!!!!! It can't be done Jim! It's
easy! But, you can't do it in software. You definitely need my
universal stepper controller, if you want to stay with a step/direction
control of the motors. See http://pico-systems.com/univstep.html
for more info. You could also look into my PPMC card set ( http://pico-systems.com/PPMC.html
) for a direct servo control setup. Either way, however, you can
have actual position feedback to EMC through these units.
I tried setting the input and
output to 50000, and the program never even fully loaded. It got past
the 5 second intro graphic, and then just sorta sat there. This is
strange behavior....what is it doing, getting pre-scared of the ini
file? I changed the input and ouput in the ini file to 10000 and the
program did actually load, after 20 seconds (normally takes about a second
after the intro graphic).
It has to do with how EMC computes the time
interval for the step pulse program. It takes your maximum velocity
(in user units/sec) times the steps per user unit, to figure out how many
interrupts per second you need. If you want 120 IPM, that's 2 IPS x
50,000 steps/inch = 100,000 steps/sec, and it needs 2 ticks of the
program, one to raise the step pulse, and one to lower it, for a 5 uS per
period. That is an awfully heavy interrupt load. The old DEC Alpha
CPU has all the timer stuff on-chip, so it can actually work with that
kind of load (maybe). But, in PCs, the timer os off-chip, on the other
side of a slow bus bridge, and it may take 10 uS just to reprogram the
timer for the next tick. Anyway, this isn't realistic, because there
would be a 2:1 jump, from 50,000 steps/sec to 100,000 steps/sec, with no
intermediate speed.
My step rate generators run at 10 MHz, for a granularity of 100 nS.
It can comfortably crank out step pulses at 300,000 steps/sec. If
you need more, I can make some small adjustments to get more.
I am thinking even if I move from
this 350mhz K6 to a 1.4ghz athlon, I am still going to have big trouble
getting rapids. Your 350 Mhz should do fine with
either of my board sets.
Would freqmod actually help this
very much, or am I going to need to dump the gecko drive idea and try and
get a servo amp that takes quadrature encoder inputs instead of a tach (I
checked, there is definately not a tach in there). I don't mind buying
something, as long as it will work, and work at a decent
speed. Freqmod makes smoother trains of step pulses,
at the cost of HIGHER CPU resources. If you've already run out of
gas, freqmod won't help much.
A DC tach can be added very easily. I had to add tachs to my motors
to get the best performance. It might be cheaper to add a tach (adapted
from a Maxon or Escap mini DC motor) and use surplus servo amps than to be
forced to buy new servo amps with encoder feedback. It depends, to some
extent, what pops up on eBay. With those encoder resolutions, a tach
is a lot less of an issue, in performance terms, than it would be with a
10,000 count/inch setup.
Jon
|