A PID style setup with steppers recovers better from latency variances. I would leave it.
sam On Wed, Feb 26, 2020 at 12:01 PM Ed W <li...@wildgooses.com> wrote: > Hi, I've made good progress converting my little OmioCNC X6 from Mach3 > to LinuxCNC. I think I owe a writeup at some point, but I still have a > few glitches before I'm ready to do that. > > First thing which I'm worrying about is that having run pncconf, it > generates an output for my open loop steppers which involves a PID type > setup, eg here is my X axis from the ini > > > [AXIS_X] > MAX_VELOCITY = 100.0 > MAX_ACCELERATION = 750.0 > MIN_LIMIT = -0.01 > MAX_LIMIT = 355.0 > > [JOINT_0] > TYPE = LINEAR > HOME = 0.0 > FERROR = 1.0 > MIN_FERROR = 0.01 > MAX_VELOCITY = 100.0 > MAX_ACCELERATION = 750.0 > # The values below should be 25% larger than MAX_VELOCITY and > MAX_ACCELERATION > # If using BACKLASH compensation STEPGEN_MAXACCEL should be 100% > larger. > STEPGEN_MAXVEL = 125.00 > STEPGEN_MAXACCEL = 937.50 > P = 1000.0 > I = 0.0 > D = 0.0 > FF0 = 0.0 > FF1 = 1.0 > FF2 = 0.0 > BIAS = 0.0 > DEADBAND = 0.0 > MAX_OUTPUT = 0.0 > # these are in nanoseconds > DIRSETUP = 10000 > DIRHOLD = 10000 > STEPLEN = 5000 > STEPSPACE = 5000 > STEP_SCALE = 320.0 > MIN_LIMIT = -0.01 > MAX_LIMIT = 355.0 > HOME_OFFSET = -5.000000 > HOME_SEARCH_VEL = -33.333333 > HOME_LATCH_VEL = 0.500000 > HOME_FINAL_VEL = 33.333333 > HOME_USE_INDEX = NO > HOME_IGNORE_LIMITS = YES > HOME_SEQUENCE = 1 > > > The corresponding .hal (again by pncconf) is as follows: > > > #******************* > # AXIS X JOINT 0 > #******************* > > 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 > setp pid.x.maxerror .0005 > > 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 > > # Step Gen signals/setup > > setp hm2_5i25.0.stepgen.00.dirsetup [JOINT_0]DIRSETUP > setp hm2_5i25.0.stepgen.00.dirhold [JOINT_0]DIRHOLD > setp hm2_5i25.0.stepgen.00.steplen [JOINT_0]STEPLEN > setp hm2_5i25.0.stepgen.00.stepspace [JOINT_0]STEPSPACE > setp hm2_5i25.0.stepgen.00.position-scale [JOINT_0]STEP_SCALE > setp hm2_5i25.0.stepgen.00.step_type 0 > setp hm2_5i25.0.stepgen.00.control-type 1 > setp hm2_5i25.0.stepgen.00.maxaccel [JOINT_0]STEPGEN_MAXACCEL > setp hm2_5i25.0.stepgen.00.maxvel [JOINT_0]STEPGEN_MAXVEL > setp hm2_5i25.0.stepgen.00.step.invert_output true > setp hm2_5i25.0.stepgen.00.direction.invert_output true > > # ---closedloop stepper signals--- > > net x-pos-cmd <= joint.0.motor-pos-cmd > net x-vel-cmd <= joint.0.vel-cmd > net x-output <= hm2_5i25.0.stepgen.00.velocity-cmd > net x-pos-fb <= hm2_5i25.0.stepgen.00.position-fb > net x-pos-fb => joint.0.motor-pos-fb > net x-enable <= joint.0.amp-enable-out > net x-enable => hm2_5i25.0.stepgen.00.enable > > # ---setup home / limit switch signals--- > > net min-home-x => joint.0.home-sw-in > net min-home-x => joint.0.neg-lim-sw-in > net x-pos-limit => joint.0.pos-lim-sw-in > > > What would someone experienced recommend I do here? This is a simple > openloop stepper machine, no feedback or position sensors. Just a 6i25 > to a basic breakout board, going to a chinese 556 stepper driver clone > and onto some small steppers on a 6040 type of machine? > > Is there any disadvantage (or advantage) to leaving all the PID and > closed loop stuff in here? > > > Thanks > > Ed W > > > > _______________________________________________ > Emc-users mailing list > Emc-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/emc-users > _______________________________________________ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users