Strange Joint Following Error

More
09 Jan 2014 04:31 - 09 Jan 2014 18:31 #42527 by llrjt100

1/40TH? That's a very curious number! The worm gear in most rotary tables is 40:1
Have you accounted for this ratio?


I've calculated based on 200 full steps per rev, 1/8 microsteps with the Xylotex board and a 90:1 rotary table reduction (It's a low cost SOBA 6" model for testing).

I'll double check the spindle encoder count for a single spindle rev next to make sure it really is 10,000 pulses per rev. I have A, B & Z channels hooked up to the USC board, so it should be counting quadrature (it's a 2,500 line code wheel).

I also checked the rotary table gear ratio in a simple X Y Z configuration - I used a SCALE of 400 in the .ini file, which I got from 200 fullsteps x 8 microsteps per fullstep x 90 = 144,000 microsteps per rotary table rev, and then dividing by 360 to get 400 microsteps per degree. I checked this with an MDI command to move 360 degrees and it was correct, so the rotary table must have 90 teeth.

Other than checking the spindle pulses per rev, I can't for the life of me think what else could be wrong, unless there's some parameters for the Pico-Systems USC board which alter the encoder or step counts in some way I'm not aware of. More likely I've made a mistake in adapting Andy's original HAL code...
Last edit: 09 Jan 2014 18:31 by llrjt100.

Please Log in or Create an account to join the conversation.

More
09 Jan 2014 10:43 #42536 by jmelson

1/40TH? That's a very curious number! The worm gear in most rotary tables is 40:1
Have you accounted for this ratio?


Other than checking the spindle pulses per rev, I can't for the life of me think what else could be wrong, unless there's some parameters for the Pico-Systems USC board which alter the encoder or step counts in some way I'm not aware of. More likely I've made a mistake in adapting Andy's original HAL code...

No, most of the logic is actually in the driver (ppmc) and not in the hardware. So, the USC board just
reports quadrature counts in a very raw form. There IS, however, a scale factor applied to each
encoder, in the driver.

This would be set with a hal command like :
setp ppmc.0.encoder.xx.scale 10000.0
and would usually be set to 10000.0 in your case, so the output of
ppmc.0.encoder.xx.position would change by 1.00 for a full revolution.

Jon
The following user(s) said Thank You: llrjt100

Please Log in or Create an account to join the conversation.

More
09 Jan 2014 17:48 - 09 Jan 2014 18:53 #42542 by llrjt100
I have setp ppmc.0.encoder.03.scale 10000 in the HAL file, so this should be correct.

so the output of ppmc.0.encoder.xx.position would change by 1.00 for a full revolution


I checked with the USC diagnostic tool and it confirmed 10,000 pulses per spindle revolution. I also checked ppmc.0.encoder.03.position with the Halscope, and it confirmed 1.0 per spindle revolution

SOLVED! - now I realise that the spindle encoder position is in revs not encoder pulses, and the rotary table position is in degrees, not stepper pulses, I get the correct 1.8 gear ratio, and this measures correctly both physically, and with Halscope :-)

Thanks again for all your help everyone!
Last edit: 09 Jan 2014 18:53 by llrjt100.

Please Log in or Create an account to join the conversation.

More
10 Jan 2014 01:07 #42554 by jmelson

SOLVED! - now I realise that the spindle encoder position is in revs not encoder pulses, and the rotary table position is in degrees, not stepper pulses, I get the correct 1.8 gear ratio, and this measures correctly both physically, and with Halscope :-)

Excellent!

Jon

Please Log in or Create an account to join the conversation.

Time to create page: 0.085 seconds
Powered by Kunena Forum