Re: solution running servo's
Posted by
Jon Elson
on 1999-12-21 13:12:09 UTC
Jan wrote:
stopped, servo power is off, but the servo amp logic is on, and servo output is clamped by the low signal on the
servo enable line to the servo amps. EMC is tracking any encoder movement and updating the current position
display. You hit the F1 key, and EMC sends the come-out-of-E_stop signal through the parallel port (if there
is not an external E-Stop condition being reported there). This sends servo power to the servo amps, and after
some delay in the power sequencing circuit, the servo amps are sent the servo enable signal, causing the PWM
drivers to generate pulses, and the output current clamping to be gradually removed. The amps' multiple control
loops were previously in an open-loop state, and the gradual removal of the clamping allows them to move to
a closed-loop steady state without a big jerk that would trip the overcurrent fault sensing. After a few hundred
milli-seconds, everything is in a good, steady-state condition, with all axes drifting slowly at .0001"/sec or less.
EMC is still sending a zero level to the axis velocity DACs, and monitoring position from the encoders.
In this state, you can set the velocity offset of the servo amps for minimum drift. This will change a bit as the
servo amps warm up, but a reasonable compromise between cold and warm should be achievable.
Finally, you hit F2, going from the 'not E-Stopped' state to the 'Machine On' state, where EMC closes
the positioning loop. Because there is some time delay between EMC freezing the last observed position
as the position to be held, and turning on the DACs to command velocity to the servo amps, there is a bit
of a jerk here, and I don't have a lot of control over it. Maybe it would be better for this state change
to send the amplifier enables to the servo amps, but I don't think EMC does it that way. Anyway, now the
positioning error is used to compute the next velocity command sent through the DACs, and the machine
will hold position, if you manually deflect it.
It sounds like there is a big DC offset in your servo amps (maybe to compensate for big DC offsets
in the DACs on your old CNC control). That should be adjusted out.
I hope this is the information you are looking for. Since I don't think much of this is written anywhere
else, I will have to add it into my FAQ.
system, is tricky but important.
Jon
> Hello Jon, Harrison en the restWell, I had to figure all this out, since I build my own servo amps. There are several stages. First, everything is
>
> Thanks for your interest in my running problem.
> For your interest I solved the problem.
>
> The running of the servo's (even no DAC-cable was connected) was probably due to the fact that to much gain was given on the amp's. I measured 62mV on the amp's when the original cable was reconnected. So to enable EMC to work with the original settings I had to have the same voltage on the DAC cable when EMC-start-up. Fred had foreseen this possibility with the, offset ,second value in the OUPUT parameter. The moment you start-up Xemc you have this voltage on your DAC-Cable.
> The running of the servo's when starting EMC when the cable was connected was due to the fact that the machine would seek for a homepuls.
> Still don't know way he does that automatically(sometimes) but I progress.
> If somebody knows what really happens behind the scene when EMC start-up, or if you know if this was publicised yet, I would really like to hear from you as it would enable me to understand more of what I'm doing.
stopped, servo power is off, but the servo amp logic is on, and servo output is clamped by the low signal on the
servo enable line to the servo amps. EMC is tracking any encoder movement and updating the current position
display. You hit the F1 key, and EMC sends the come-out-of-E_stop signal through the parallel port (if there
is not an external E-Stop condition being reported there). This sends servo power to the servo amps, and after
some delay in the power sequencing circuit, the servo amps are sent the servo enable signal, causing the PWM
drivers to generate pulses, and the output current clamping to be gradually removed. The amps' multiple control
loops were previously in an open-loop state, and the gradual removal of the clamping allows them to move to
a closed-loop steady state without a big jerk that would trip the overcurrent fault sensing. After a few hundred
milli-seconds, everything is in a good, steady-state condition, with all axes drifting slowly at .0001"/sec or less.
EMC is still sending a zero level to the axis velocity DACs, and monitoring position from the encoders.
In this state, you can set the velocity offset of the servo amps for minimum drift. This will change a bit as the
servo amps warm up, but a reasonable compromise between cold and warm should be achievable.
Finally, you hit F2, going from the 'not E-Stopped' state to the 'Machine On' state, where EMC closes
the positioning loop. Because there is some time delay between EMC freezing the last observed position
as the position to be held, and turning on the DACs to command velocity to the servo amps, there is a bit
of a jerk here, and I don't have a lot of control over it. Maybe it would be better for this state change
to send the amplifier enables to the servo amps, but I don't think EMC does it that way. Anyway, now the
positioning error is used to compute the next velocity command sent through the DACs, and the machine
will hold position, if you manually deflect it.
It sounds like there is a big DC offset in your servo amps (maybe to compensate for big DC offsets
in the DACs on your old CNC control). That should be adjusted out.
I hope this is the information you are looking for. Since I don't think much of this is written anywhere
else, I will have to add it into my FAQ.
> BTW Do not forget a GROUNDING CABLE , I just ruined an encoder card!Yup, keeping a consistent, single-point ground, through all the various analog stages of the
system, is tricky but important.
Jon
Discussion Thread
Jan
1999-12-21 06:18:44 UTC
solution running servo's
Jon Elson
1999-12-21 13:12:09 UTC
Re: solution running servo's