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

Reply via email to