hey gene I have been playing with this since the last email.
I found a forum post here which was really helpful. https://forum.linuxcnc.org/10-advanced-configuration/35997-step-dir-with-following-error-setup?start=0 basicely I needed to keep my step gen hal connections all working still but put the encoder feedback in there too. I pretty much copied the examples and went on from there. The Axis DRO now is referenced by the encoder feedback showing the actual position. But my servo tuning is already not that bad and the encoder count definitely follows the stepgen pretty close. I am still not sure how to get the scope to capture the difference between the commanded velocity and the encoder feedback yet and allow me to fix it in the drive but I am really close not I think. here are my ini and hal files for you to look at if you want. I have commented the HAL file showing the new stuff I put in there I changed the encoder to negative instead of inverting the A and B channels. and I got the correct encoder scale all working now when I move the axis I can see the encoder following I can't map the error but as soon as I stop the encoder is within .002 mm of the requested position. that is fine. But I just want to make sure it is following the path correctly during motion. which is probably is not. regards Andrew On Sun, May 10, 2020 at 9:52 PM Gene Heskett <ghesk...@shentel.net> wrote: > On Sunday 10 May 2020 02:18:00 andrew beck wrote: > > > just a follow up here. after much searching on the forum I now have > > my feedback connecting up to the pid loop. and the machine takes off > > all over the place. with about 70 mm feedback error > > > Feedback is backwards, interchange the A and B connections. > > > problem is I don't want to actually change my open loop step gen pid > > loop. I just want to be able to compare commanded position and the > > encoder position and then adjust the tuning values in my servo drive > > until it is tuned nicely. > > > > anyway I will post on the forum also and see what people think > > > > regards > > > > Andrew > > > > On Sun, May 10, 2020 at 4:47 PM andrew beck <andrewbeck0...@gmail.com> > > > > wrote: > > > just to add on here. I know people are connecting up encoder > > > feedback to step dir control servo drive systems on here. so it has > > > been done before. I am just having a little trouble following along. > > > > > > regards > > > > > > Andrew > > > > > > On Sun, May 10, 2020 at 4:46 PM andrew beck > > > <andrewbeck0...@gmail.com> > > > > > > wrote: > > >> hey Gene > > >> > > >> I am tuning my chinese servos and can't connect up the tuning > > >> software so want to show it in Halscope so that I can track the > > >> following error and then adjust it in the servo drive. This is > > >> just a temporary thing. I have the feedback from the X axis > > >> encoder plugged into the Spindle encoder pins on the 7i76 as that > > >> is the only high speed encoder counter I currently have to use. > > >> > > >> I am not sure exactly how to set this thing up. > > >> > > >> *Ideally I just want to be able to graph the encoder following > > >> error between my encoder and the commanded position that is going > > >> through the step gens. I don't want to touch the PID loop in Linux > > >> at the moment as I only have the once encoder counter and will have > > >> to remove the feedback once the tuning is done and connect up the Y > > >> axis encoder next to the 7i76 spindle encoder pins* > > >> > > >> this is my first time using Halscope (actually any sort of scope) > > >> and I am getting stuck > > >> > > >> regards > > >> > > >> Andrew > > >> > > >> On Sun, May 10, 2020 at 4:02 PM Gene Heskett <ghesk...@shentel.net> > > >> > > >> wrote: > > >>> On Saturday 09 May 2020 23:25:42 andrew beck wrote: > > >>> > hey guys > > >>> > > > >>> > getting a bit stuck here and it is the same issue as this old > > >>> > email so I thought I would answer it and see what you guys think > > >>> > > > >>> > I have a standard Hal and ini file generated from Pncconf for a > > >>> > 5i25 and 7i76 combo. > > >>> > > > >>> > just trying to connect my encoder and graph the following error > > >>> > in Halscope. > > >>> > > > >>> > all I want to do at the moment is use Halscope to allow me to > > >>> > manually tune my servo drive parameters. (I will not be tuning > > >>> > inside linuxcnc at the moment that will have to wait until my > > >>> > new mesa cards come > > >>> > > > >>> > Can someone please advise what hal and ini stuff needs to be > > >>> > changed to get my feedback into halscope > > >>> > > > >>> > regards > > >>> > > > >>> > Andrew > > >>> > > > >>> > > > >>> > > > >>> > I have just connected my x axis encoder to my spindle > > >>> > > >>> For what purpose? > > >>> > > >>> > On Thu, Feb 27, 2020 at 7:01 AM 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 > > >>> > > >>> PID's are optional for microstepped steppers. I have 2 lathes, one > > >>> running with and one w/o. Both work well. My 6040 is running well > > >>> w/o PID's. My GO704 has them. They are needed with servo's as > > >>> thats what drives the servo's to a null, no error position. PID > > >>> are useful IF you have feedback from glass scales or separate > > >>> encoders on the motors, basicly treating the stepper as a servo, > > >>> and the better motor kits today are moving in that direction. > > >>> > > >>> > > [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 > > >>> > > >>> 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 > > >>> 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 > > > 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 > Emc-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/emc-users >
chevalier_cnc_mill.ini
Description: Binary data
chevalier_cnc_mill.hal
Description: Binary data
_______________________________________________ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users