> 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
