Delay axis movement while brake releases

More
5 years 9 months ago #195558 by lllars
I have a 4th axis with brake on my mill. I want to set it up like a locking indexer, where the brake is on whenever the axis is stopped. But I also want to be able to jog the axis and (ideally) use it for coordinated moves also. So, I can't just use the built-in locking_indexer functionality (which only allows G0 moves).

I have it set up using a wcomp to check if the commanded velocity for the axis is non-zero, and that controls the brake. It all works great except that I am losing a few steps during the fraction of a second it takes for the brake to disengage. How can I delay sending steps to the axis until after the brake disengages?

Here's the relevant section of my hal file:
Code:
### handle 4th axis brake ### loadrt wcomp names=wcomp_vzero loadrt not names=not_vzero loadrt timedelay names=timedelay_brake,timedelay_brake_movement addf wcomp_vzero servo-thread addf not_vzero servo-thread addf timedelay_brake servo-thread # wcomp output is true when input between min and max, false otherwise setp wcomp_vzero.min -0.0001 setp wcomp_vzero.max 0.0001 setp timedelay_brake.on-delay 1.0 setp timedelay_brake.off-delay 0.0 net a-vel-cmd => wcomp_vzero.in # drive is wired so that brake is on when switch is off # so need to invert logic net A_stopped wcomp_vzero.out => timedelay_brake.in net A_brake_on timedelay_brake.out => not_vzero.in net A_brake_off not_vzero.out => hm2_7i95.0.ssr.00.out-02

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

More
5 years 9 months ago - 5 years 9 months ago #195596 by andypugh
One way is to set the adaptive feed to a _tiny_ number such as 10e-10. Not high enough for anything to actually move, but high enough for the axis velocity to not be exactly zero. Then set the adaptive feed to 1 as soon as the brake is released.
Last edit: 5 years 9 months ago by andypugh.

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

More
5 years 9 months ago #195625 by lllars
But for moves that don't involve the 4th axis, the brake won't (and shouldn't) be released. So motion would never proceed.

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

More
5 years 9 months ago #195627 by lllars
Hmm.. I wounder if I could twiddle the a-enable or hm2_7i95.0.stepgen.03.enable pins.

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

More
5 years 9 months ago #195629 by lllars
This is looking promising. I've got a timedelay set to enable the axis about 40 ms after the brake is turned off. I do get a following error, but if I dial down the acceleration of that axis a bit, the f-error is manageable and drops back to zero after ~300ms.

I'm sort of simulating this tonight with only the PC and Mesa card powered up, but all the motor drivers powered off. I'll fire it up all the way tomorrow and see if it actually works and if the dial indicator shows I'm still losing any steps.

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

More
5 years 9 months ago #195652 by chris@cnc
Hi,
one solution would be to use motion.feed−inhibit.
At time when brake is working, stop motion in machine. So should not possible, that any pulse go lost.
Usually is the brake control by M-Code to avoid any flicker. So take a look that the brake operate not so nervous. Relay contacts burn very fast by this way.

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

Time to create page: 0.184 seconds
Powered by Kunena Forum