On Wed, 26 Feb 2020, Ed W wrote:

Date: Wed, 26 Feb 2020 17:58:09 +0000
From: Ed W <li...@wildgooses.com>
Reply-To: "Enhanced Machine Controller (EMC)"
    <emc-users@lists.sourceforge.net>
To: "Enhanced Machine Controller (EMC)" <emc-users@lists.sourceforge.net>
Subject: [Emc-users] Making progress

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


You can use the built in position mode control loop in the driver (without PID) but you can get better performance by using PID and velocity mode, especially with regard to host servo thread jitter. This is why PNCCONF uses thsi control mode even for open loop step motor systems.






_______________________________________________
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users


Peter Wallace
Mesa Electronics

(\__/)
(='.'=) This is Bunny. Copy and paste bunny into your
(")_(") signature to help him gain world domination.



_______________________________________________
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users

Reply via email to