BACKLASH setting not working

More
9 years 3 months ago #96254 by PCW
Replied by PCW on topic BACKLASH setting not working
Actually, you _are_ running your drives in position mode
Can you plot the commanded position when doing a reversal?

Is it possible the fast motion during reversals is somehow not accepted by your position mode drives interpolation?

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

More
9 years 3 months ago #96282 by Todd Zuercher
I have no experience with an Ethercat system, but Linuxcnc is running totally open loop with no feedback at all as you have it now. So how can you have any idea if the drives are following the commands it receives?
Can you get any feedback from your system, for diagnostic purposes if nothing else? (a list of available hal pins might help find such things.

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

More
9 years 3 months ago #96346 by Cpk_Rbt
Good point. I suppose we have an unusual configuration.

We did our backlash test at incredibly low speed, stepping 0.001 at a time and using a touch probe against a piece of stock to see the difference in position between when the probe initially lights up, then backing off and seeing when the light goes out. So for that scenario at the least, I do not think it is a speed issue.

Somewhat of a side note, I believe we have a following error value coming back from the drive. Can we connect that to a pin to let LinuxCNC know how far behind the drives are? We had previously only tried looping back the actual position and it seemed like the drive and LinuxCNC were fighting for control, so we left it open loop.

Thanks for your patience with this, we really appreciate the help!

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

More
9 years 3 months ago - 9 years 3 months ago #96350 by Todd Zuercher
I don't think that there is a way to use only the following error from the drive other than for diagnostic purposes (such as using Halscope.)
How were you trying to use the position feedback from the drive?
If you only connect it to the "axis.N.motor-pos-fb" (or "joint.N.motor-pos-fb" in master) Linuxcnc will only use it for DRO and calculating joint following error alarms. It should not cause any fighting, provided the position command and position feedback are scaled the same and following errors are reasonable. For there to be any fighting think you would have to add a PID loop.
Last edit: 9 years 3 months ago by Todd Zuercher.

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

More
9 years 3 months ago #96477 by Cpk_Rbt

Todd Zuercher wrote: So how can you have any idea if the drives are following the commands it receives?


I realized we forgot to address this question of yours. Each drive is locked into an interpolation loop, and if that unlocks, it sends back feedback to LinuxCNC. We have signals set up to disable the LinuxCNC system if any of the drives leaves "ready for motion" state.


In regards to backlash compensation, it is our understanding that it is basically telling the machine how far to move the motor before the mechanics start moving (e.g. when the gear teeth engage). Is that how LinuxCNC treats backlash compensation, or is there something else going on outside the norm of backlash compensation?

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

More
9 years 3 months ago - 9 years 3 months ago #96484 by Todd Zuercher
Duh! I just realized what your problem is and why you are not seeing any backlash compensation applied to the motors. It is an obvious mistake in your hal file that we should have caught straight off when you posted your hal file. I kind of feel bad for not seeing this before.

You are using the pin axis.N.joint-pos-cmd as the source for your command to your drives. This is WRONG. You need to use axis.N.motor-pos-cmd. The reason is right here in the man page for Motion
axis.N.joint-pos-cmd OUT FLOAT
The joint (as opposed to motor) commanded position. There may be several offsets between the joint and motor coordinates: backlash compensation, screw error compensation, and home offsets.

The simplest fix would be to change these 3 lines in your hal file from this:
Code:
net pos0_float axis.0.joint-pos-cmd => lcec.0.1.poscommand net pos1_float axis.1.joint-pos-cmd => lcec.0.0.poscommand net pos2_float axis.2.joint-pos-cmd => lcec.0.2.poscommand
to this:
Code:
net Xpos => lcec.0.1.poscommand net Ypos => lcec.0.0.poscommand net Zpos => lcec.0.2.poscommand
Last edit: 9 years 3 months ago by Todd Zuercher.

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

Time to create page: 0.053 seconds
Powered by Kunena Forum