> From: andy pugh [mailto:[email protected]]
> On Wed, 16 Jun 2021 at 13:37, suraj kumar <[email protected]> wrote:
> 
> > I see, I have to set the maximum velocity and acceleration in ini file at
> > more than one place, like in [DISPLAY], [TRAJ], [AXIS_X], [JOINT_0]. I can
> > also see in [JOINT_0], I need to set two times, one for Max velocity and
> > acceleration and another for STEPGEN MAXVEL and MAXACCEL (25% larger than
> > MAX_VELOCITY and MAX_ACCELERATION).
> 
> They all do slightly different things.
> 
> Starting with the stepgens: The stepgen modules (both software and
> fpga versions) have internal limits on velocity and acceleration. You
> can set these to zero and no limits are applied.
> The reason for this is so that it is possible to connect a stepgen to
> a stepper motor and pass position/velocity commands _without_ passing
> the command through a trajectory planner. A GUI, for example, can pass
> a new position to the stepgen position command and
> the internal limits will mean that the motor will accelerate smoothly
> to position and stop.
> If a system is configured with backlash compensation then the stepgen
> limits need to exist too.
> 
> Then there are the joint and axis limits. These are often exactly the
> same with a cartesian machine, but are not the same thing when the
> kinematics is more complicated.
> 
> The [DISPLAY] section sets how high the sliders are allowed to go that
> set the velocities. You might want to have these different to the
> actual machine hardware limits.
> 
> And the [TRAJ] limits are the limits foro tool-point velocity in
> multi-axis motion, which can be significantly higher than for a single
> axis.
> 
> --
> atp

I have a follow up question to Andy's answer.  I recall Peter Wallace (I think 
it was Peter) mentioning that the PID wasn't needed for stepper drives but 
would be needed for a PWM driven spindle with encoder feedback.  So for stepper 
motor or servo drives driven with their own closed loop controller these aren't 
needed?

addf pid.x.do-pid-calcs       servo-thread
addf pid.y.do-pid-calcs       servo-thread
addf pid.z.do-pid-calcs       servo-thread
addf pid.a.do-pid-calcs       servo-thread

And therefore lines like this can also be removed?

#*******************
#  AXIS X
#*******************
setp   pid.x.Pgain     [JOINT_0]P
setp   pid.x.Igain     [JOINT_0]I
setp   pid.x.Dgain     [JOINT_0]D
setp   pid.x.bias      [JOINT_0]BIAS
setp   pid.x.FF0       [JOINT_0]FF0
setp   pid.x.FF1       [JOINT_0]FF1
setp   pid.x.FF2       [JOINT_0]FF2
setp   pid.x.deadband  [JOINT_0]DEADBAND
setp   pid.x.maxoutput [JOINT_0]MAX_OUTPUT
setp   pid.x.error-previous-target true

net x-index-enable  <=> pid.x.index-enable
net x-enable        =>  pid.x.enable
net x-pos-cmd       =>  pid.x.command
net x-pos-fb        =>  pid.x.feedback
net x-output        =>  pid.x.output

Especially since the pid.x.___ aren't used anywhere else?

Have I got it right?
Thanks
Joihn




_______________________________________________
Emc-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/emc-users

Reply via email to