On Thursday 17 June 2021 12:17:51 John Dammeyer wrote: > > 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
Pretty much John. I still have 2 machines that do use PID's but its only because I'm too lazy to reconfigure them. Look at it this way: If you have an encoder attached to an axis, and you are using the encoder to stiffen the speed regulation, then you do need the PID to serve as the summing point. But if the only thing the encoder is doing is driving a tach in your gui, or tieing a rigid tapping ability together then you don't need the pid. For instance, if using a vfd for a lathe spindle, the vfd will as long as it has enough power, run the motor within 5% of its commanded speed without a PID, If there is an encoder, it is probably not used for feedback, but only for rigid tapping or other G33 distance per turn modes. My Sheldon lathe has a vfd, controlled by a mesa SpinX1, and even then its only used for rigid tapping or any other G33 related mode. My TLM OTOH, does have a PID because its a PMDC motor being run by one of the Pico PWM-Servo's. Speed regulation is excellent, perhaps 1 rpm from no load to peeling a 1/16" square chip off a steel bar. My 6040 has a vfd, but no encoder, so I drive a tach from the rpm output of the vfd's interface. It of course doesn't have a heuvo's to tap anything bigger than a 0-80 so its never been attempted. My G0704 also has a PMDC spindle, so its a carbon copy of TLM's spindle but can rigid tap. And it has a PID since the motors are copies of each other. Cheers, Gene Heskett -- "There are four boxes to be used in defense of liberty: soap, ballot, jury, and ammo. Please use in that order." -Ed Howdershelt (Author) If we desire respect for the law, we must first make the law respectable. - Louis D. Brandeis Genes Web page <http://geneslinuxbox.net:6309/gene> _______________________________________________ Emc-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/emc-users
