On Tuesday 28 March 2017 13:27:42 Stuart Stevenson wrote: > Gentlemen, > Setup at Helix (my shop) > Wheezy > Linuxcnc2.7 - git pull and compile this morning > PPMC interface > Jog Wheel - Fanuc type A60-0201-5001 - 100 detents per wheel > revolution Touchy interface with Rapid Over Ride choice added and the > MV: label changed to DRY RUN. > > Setup at MPM (my old shop) > Wheezy > Linuxcnc2.7 from the live cd > PPMC interface > Jog Wheel - two different wheels - 100 detents per wheel revolution > Touchy interface as supplied on the live cd. > > Moving the machine with the jog wheel doesn't yield the proper > movement amount. > > Moving the Helix machine over ride (rapid, feed, spindle and dry run) > is correct. > Moving the MPM machine over ride (feed, spindle and mv) is correct. > > There is no machine connected at Helix. > I have the servo error set at .200 for each axis [X,Y,Z] to allow room > to pulse the axis motions. > > MPM has the control running the Enshu. > > .010 setting per pulse > First detent positive or negative shows motion of .0075. > Subsequent clicks show .0075 or .01 moves each click. > The error is essentially the same but does vary somewhat with minor > differences. > Reverse detents back to zero shows reliably back to 0.0000. > You can watch the position feedback transition through .0025 steps > until it stops counting wherever is stops counting (correct or not > correct). > > Smaller pulse setting show similar motion errors but the .0010/.0001 > display limit masks the exact error amount. > > Moving the jog wheel 10 detents rapidly shows .1000 axis movement both > directions. Moving 10 detents rapidly back to zero shows sometimes a > position error of 0.0025 and sometimes no position error. > > If this happened only here at Helix I would say nothing and replace my > jog wheel BUT this same scenario is replayed on the Enshu at MPM. MPM > has tried two different jog whThere is no machine connected at Helix. > I have the servo error set at .200 for each axis [X,Y,Z] to allow room > to pulse the axis motions. > > eels and both jog wheels yield the same result. > > MPM says the machine cuts correctly under cnc control.
It has the clues that the jog information isn't being fed into motions axis.L.jog-value or jog-counts correctly. Checkable with a hal meter. Perhaps I can explain it as I've applied it to this Sheldon lathe I'm currently cnc'ing. I develop, by way of entirely too many hal steps, a jog-value, and a jog-count. These are independent values. The jog-value is a scaled according to the size of the step move desired, and can range from .0001" to .020" over the range of a 0-7 counter. The counter is decoded by a bitslice to make the 3 address bits for a mux8. Each input to the mux8 is setp'd to the above value on a 1,2,5 range sequence, like the gain on a good scope. This value, however you determine it, is fed to "axis.L.jog-value" where L is an axis name character. The next signal to check is "axis.L.jog.counts", which for one click is an increment of 4 at the encoder out for one "click" at the jog wheel. So this value is fed to a mult2, with the 2nd input setp'd to .2500000. The mult2 output of one count per click is then fed into axis.L.jog-counts. And it moves exactly the amount I've set the jog.value to be. This is in machine units so I'm dealing in inches. I have a tally showing that value as part of my axis gui. I drive the 0-6 counter, not by the mult2 output, but by an and2 thats tied to the encoders A/B pins, so its only true 25% of the time. And I have a 30 second timeout after the release of the jog set pushbutton beside each wheel that resets the encoder and disables the jog.count back to zero from whereever it is. If I need more time, I tap the pushbutton for another 30 seconds. My biggest problem is that this jog information into the motion module, doesn't appear to be acceleration constrained by the MAX_ACCEL settings in the .ini file, so a large jog per step seems to be an instant joint following error. This on a machine being run by a raspberry pi 3b, with nary a PID loaded. Before its all done, I'll need to extract a rockhopper file so that I can verify that I have the addf's in the correct, everything just falls thru in one thread execution cycle order. The logic for the jog wheel is running in a 1/5th servo-thread thread, set by a call to threads, setting it to 200 hz which I can't quite manage to overrun with my ancient fingers. Despite all this, the pi appears to loafing, less than 10 to 12% of the cpu is running linuxcnc bits and pieces. And during the time the wheel is active, I can spin the wheels pretty fast if the jog-value is only 1 or 2 thou, no miss-queue's of note. I am still experimenting with reducing the acceleration settings. Maybe there is one that applies. I have not yet resorted to a lowpass filter in the jog-counts path, but might have to yet. ATM I am up to my buns in alligators working on the spindle drive, someone back in the mists of time installed the pulley on the countershaft reversed left for right while they were replaceing the spindle drive belts, missing the key, and expected the set screw to lock it to the shaft. The slippage created a ton of heat and ate the bore out of the pulley, so I am in the process of installing a taperlock hub in the pulley to salvage both parts. Back to this. Bottom line is that what you feed jog-value controls how far per step if what you feed jog-count is an increment or decrement of one per detent felt by your fingers. This to me, seems like the logical way it ought to work. FWIW, I finally use the last of those 3 small ball screws you sold me several years back, its in the crossfeed for this 11x36 Sheldon I am rebuilding/converting. I hope this helps you find your scale problem, Stuart, and I thank you for favors past. If this is still muddy, I can send my hal file, or even the gui stuff too if you'd like. > > Another issue: > Is there a non zero P value for the G64 command as a default? > If so how would I set the default to zero? G64 P0 I think. I've had to do that here a time or 3. Thats not setting the default, but you can add that to the RS274 init string in the ini file, which may as well be the default. > thank you for your attention and feedback > Stuart Cheers Stuart S., 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) Genes Web page <http://geneslinuxbox.net:6309/gene> ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot _______________________________________________ Emc-developers mailing list Emc-developers@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-developers