Motors Minimum RPM ( wrt rigid tapping )

If the system works correctly, invoking a G84 should tell the controller to slave the Z axis to the spindle axis, and in that case the spindle speed should make no difference. The controller should handle the electronic gearing needed to move the Z in relation to the spindle.

G84 Tapping Cycle Format
G84 X_ Y_ Z_ R_ F_
X Y – Hole position data
Z – Z-depth (feed to Z-depth starting from R plane)
R – Position of the Retract plane
F – Cutting feedrate, where F is the feed per spindle rotation.
 
If the system works correctly, invoking a G84 should tell the controller to slave the Z axis to the spindle axis, and in that case the spindle speed should make no difference. The controller should handle the electronic gearing needed to move the Z in relation to the spindle.

G84 Tapping Cycle Format
G84 X_ Y_ Z_ R_ F_
X Y – Hole position data
Z – Z-depth (feed to Z-depth starting from R plane)
R – Position of the Retract plane
F – Cutting feedrate, where F is the feed per spindle rotation.

Thanks Jim,

Thats very helpful, thank you !. Here is a link to the video I referred to above. At the 17 minute mark he starts to discuss the changes he had to make to Fusion's g-code to make it compatible with his Fanuc VMC.


Cheers,

Jake
 
The motor spec sheet says the speed range is 1000-1. That would of course be with a compatible vector VFD, but it suggests the motor is optimized for low speed operation. Lets suppose the the max speed is 240 hz = 7200 rpm. Then 1/000 of that is 7.2 rpm. It would be worthwhile getting full specs on the motor and maybe talking to a rep. What's the lowest speed for "constant torque, etc. Does the motor have winding thermostats or other overheat warning provisions. Possibly you might reconsider your belt ratios.

Very good, thank you for that explanation. So the motor should, with all VFD settings proper and tuned, have good torque at relatively low speeds !
 
You do not need a clutch per se, given a functioning Z axis it will tap at the correct lead yet will not know the radial spindle position without the 4th axis control, a floating tap holder allows tapping without a spindle control by taking the rotational spindle position out of the program.

Picture this, 1/4"-20 TPI tap into the part using a .050" per revolution Z feedrate then the spindle stops at the bottom of the hole, it now reverses rotation direction 120 Degrees out of phase from where it stopped because there is no spindle position control, this will leave a broken tap in the part.. A floating holder will allow for any spindle position error.

Yeah, fully aware of all that and if he gets an encoder fitted and can persuade the controller to run the VFD as required then that's great but picture this, tapping to the bottom of a blind hole, the controller doesn't reverse the motor quite as promptly as required - this will leave a broken tap in the part.

I mill most threads which for any reason have to be cut on the CNC mill and use a tapping head on my big mill drill for tooling plates etc. as it's far quicker, rarely use a tap in the CNC mill any more ;-)
 
Very good, thank you for that explanation. So the motor should, with all VFD settings proper and tuned, have good torque at relatively low speeds !
Let us know how it goes. Cooling has usually been the limiting factor for low speed motor operation --which is why large DC motors typically have an independent cooling blower. I notice your motor is a non ventilated design (TENV). That seems a bit unusual for a 1.5 hp motor, but I suppose motor design is evolving to take better advantage of VFDs.
 
The motor spec sheet says the speed range is 1000-1.

That's not the speed range. That's the CT ratio, which means 1000:1 constant torque. If this is a 1740RPM motor, the motor is rated at full (100%) torque down to 174RPM with no overheating.

That CT ratio is used on safety-critical applications like crane and hoist winches. If you have an encoder, and the VFD can use the encoder inputs for closed-loop operation, you may even be able to get over 100% rated HP at zero RPM.

You have a very, very nice motor. The only thing better than this is a full-blown servo system with positioning (they're lighter than same HP induction motors).

It will do fine at 500RPM tapping and low-speed drilling with big drills.

As for the VFD, get a big braking resistor. My 2hp Marathon (same CT) motor can stop in .5 seconds from 5000RPM without tripping. Just make sure to check the VFD parameters to enable an external braking resistor. "DC Injection" braking is not the same thing - that's using the internal VFD components. OK for moderate braking, but if you want to STOP RIGHT NOW you need a big heat sink to dump that energy in to.

The VFD manual will have ohms/watts specifications for a resistor, and ebay and Amazon have fairly inexpensive resistors available.

My control board is the Centroid Acorn. At least using their “intercom” conversational code generator it should be able to take advantage of the spindle encoder to slave the Z to the spindle speed.

Your controller will probably need a spindle index sensor. Either on the motor encoder, or possibly on the spindle itself. The controller reads the encoder pulses and when the spindle synchronization function is engaged it starts moving the Z-axis when the index signal is triggered. The controller moves the Z the correct number of pulses/steps per value of angular rotation (signaled by the encoder). You can actually program the spindle synchronization with a 0 spindle speed and then grab the spindle and lower the Z by hand once that function is engaged just by turning the spindle.

If the controller sees the index on the motor and and not the spindle, it may be off by a factor of 2 due to your pulleys. Maybe not, you'll just have to see. I wound up adding an index trigger directly to my spindle with a NPN proxy sensor and a set screw in a collar.

IMPORTANT - check the VFD & controller specs and see if they supports your encoder PPR (pulses per rev). A high-count encoder may overwhelm the controller as the pulses are coming at too high a frequency for it to handle. Purchase the encoder appropriately, based on your maximum desired RPM.

The nice thing about this is that even if it overshoots a hair, the controller knows (because of the encoder) and it doesn't lose sync with the threads. The Z just keeps going down a little until it reverses. I can rigid tap 3/8-16 at 500RPM and set the depth within 0.025" of the bottom of a blind hole (with a .5sec decel). Finer threads can get closer to the bottom, of course.

Assuming your controller supports it, this setup should also be able to peck tap. Nothing like tapping a 5/8 hole in 3 or 4 pokes!
 
On my control, Camsoft, I wrote this custom machine code to run G84. I assume either you or Acorn had to write something equivalent to control the machine for rigid tapping



[[G84]]
' G84
'format is G84 X_ Y_ Z_ R_ Q_ C_ L_
LOADING \55:IF\55=0THENEXIT
'check that spindle is off
IF #34=1 THEN MESSAGE Spindle running:EXIT
IF #35=1 THEN MESSAGE Spindle running:EXIT


IF\775=84THENGOTO :SKIP84 'second or later point on modal command

READOUT3 \850 'current Z position
ISTHERE X;\50;\851 'X axis coordinate
IF\50=0THEN MESSAGE Need X value:\851=x 'get X from last commanded move
ISTHERE Y;\50;\852 'Y axis coordinate
IF\50=0THEN MESSAGE Need Y value:\852=y 'get Y from last commanded move
ISTHERE Z;\50;\853 'Z axis coordinate
IF\50=0THEN MESSAGE Need Z value:EXIT
z=\850 'this stops crashes if operator forgets G80
ISTHERE R;\50;\854 'R axis coordinate
IF\50=0THEN \854={\850}: MESSAGE No R value, start at current Z from READOUT3
r=0 'this stops crashes if operator forgets G80
ISTHERE C;\50;\855 'C feed is 1/thread
IF\50=0THEN IF s=0 THEN MESSAGE No C, no current S;ABORT:EXIT
IF\50=0THEN \855={f/s} 'calculate C from current feed and speed
IF\50=0THEN QUESTION No C (lead) value, use current speed and feed \855 ? ;\55;N:IF\55<>Y THEN EXIT
c=0 'this stops crashes if operator forgets G80
ISTHERE Q;\50;\857 'Q is peck value
IF\50=0THEN \857=0 'no peck, just all the way down and out
q=0 'this stops crashes if operator forgets G80
ISTHERE L;\50;\858:IF\858>1THEN\858=1 'L is left hand thread, any value results in \858=1
IF\50=0THEN \858=-1 'if no L value, right hand thread
l=0 'this stops crashes if operator forgets G80

:SKIP84 'don't collect Z,R,C,Q,L on second or later point in modal command

\864=0 'flag for second pass if peck cycle


'Calculate electronic gearing
'assume machine is in backgear, gear ratio is 92/15
'Z encoder is 20,000 spindle encoder is 4000 from CNCsetup
'a negative value makes Z go down on CW rotation \858 variable
'Feed per rev is in \855
\860={\858*\855*(20000/((92/15)*4000))} '\860 is electronic gear ratio
\860={(INT(100000*\860))/100000} 'round to five decimal places

'Calculate number of spindle turns in encoder counts for this 4000 count spindle encoder, back gear ratio is 92/15
' R plane - Z depth is distance; divide by Feed to get toal revolutions
\861={INT(((\854-\853)/\855)*4000*(92/15))} '(R plane - Z value) / thread pitch * encoder counts per rev.
\862={INT((\857/\855)*4000*(92/15))} '(Q peck distance) / thread pitch * encoder counts per rev.

'Calculate depth of tap pass
IF \862=0 THEN \863=\861 'no peck
IF \862>0 THEN IF \862<\861 THEN \863=\862 'if there's a peck value, and peck is less than total depth; move peck amount
IF \862>0 THEN IF \862>=\861 THEN \863=\861 'if toal depth less than peck, no peck

DECELSTOP
RAPID x;y 'rapid to x y position
DECELSTOP
RAPID ;;\854 'rapid to R plane, or current Z if no R

:pECKLOOP
IF\864=1 THEN IF \863>\861 THEN \863=\861 'check not too deep on 2nd+ pass
IF \858=-1 THEN [SPINCW] 'right hand tap going down
IF \858=1 THEN [SPINCCW] 'left hand tap going down
IF \864=0 THEN COMMAND FIE:COMMAND GA ,,E :COMMAND GR ,,\860
'if first time through;FindIndex mark,set spindle to slave Z,electronic gear ratio

:TAPLOOPDOWN 'run spindle till total encoder counts
SLEEP 0.0025 'sleep 25 msec.
COMMAND MG_TPE 'get spindle encoder count
RESPONSE \866:IF \858=1 THEN \866={-1*\866} 'current counts; *-1 if left hand
IF \866>\863 THEN [STOPSPINDLE]:GOTO :TAPBOTTOM 'run spindle till total encoder counts
GOTO :TAPLOOPDOWN

:TAPBOTTOM 'back tap out
IF \858=1 THEN [SPINCW] 'right hand tap going up
IF \858=-1 THEN [SPINCCW] 'left hand tap going up

:UPTAPLOOP 'run spindle till total encoder counts
SLEEP 0.0025
COMMAND MG_TPE
RESPONSE \866:IF \858=1 THEN \866={-1*\866} 'current counts; *-1 if left hand
IF \866<O THEN [STOPSPINDLE]:GOTO :DONETAP 'tap is back to the top
GOTO :UPTAPLOOP

:DONETAP
IF \863<{\861-250} THEN \863={\863+\862}:\864=1:GOTO :pECKLOOP
'\864 flag for second pass
'made {861- 250} to not do another pass if very close to depth
'if not at full depth, add peck value to depth, set flag for second+pass, start again

COMMAND GR ,,0 'turn off electronic gearing
MACHDISP
MACHHOME3 \868 'current home readout
MACHZERO ;;\868 'rezero to current home readout
ABSDISP
'NOTE: Above 4 lines needed because registers get confused with electronic gearing

DECELSTOP
RAPID ;;\850 'rapid to Z start plane
 
That's not the speed range. That's the CT ratio, which means 1000:1 constant torque. If this is a 1740RPM motor, the motor is rated at full (100%) torque down to 174RPM with no overheating.

That CT ratio is used on safety-critical applications like crane and hoist winches. If you have an encoder, and the VFD can use the encoder inputs for closed-loop operation, you may even be able to get over 100% rated HP at zero RPM.

You have a very, very nice motor. The only thing better than this is a full-blown servo system with positioning (they're lighter than same HP induction motors).

It will do fine at 500RPM tapping and low-speed drilling with big drills.

As for the VFD, get a big braking resistor. My 2hp Marathon (same CT) motor can stop in .5 seconds from 5000RPM without tripping. Just make sure to check the VFD parameters to enable an external braking resistor. "DC Injection" braking is not the same thing - that's using the internal VFD components. OK for moderate braking, but if you want to STOP RIGHT NOW you need a big heat sink to dump that energy in to.

The VFD manual will have ohms/watts specifications for a resistor, and ebay and Amazon have fairly inexpensive resistors available.



Your controller will probably need a spindle index sensor. Either on the motor encoder, or possibly on the spindle itself. The controller reads the encoder pulses and when the spindle synchronization function is engaged it starts moving the Z-axis when the index signal is triggered. The controller moves the Z the correct number of pulses/steps per value of angular rotation (signaled by the encoder). You can actually program the spindle synchronization with a 0 spindle speed and then grab the spindle and lower the Z by hand once that function is engaged just by turning the spindle.

If the controller sees the index on the motor and and not the spindle, it may be off by a factor of 2 due to your pulleys. Maybe not, you'll just have to see. I wound up adding an index trigger directly to my spindle with a NPN proxy sensor and a set screw in a collar.

IMPORTANT - check the VFD & controller specs and see if they supports your encoder PPR (pulses per rev). A high-count encoder may overwhelm the controller as the pulses are coming at too high a frequency for it to handle. Purchase the encoder appropriately, based on your maximum desired RPM.

The nice thing about this is that even if it overshoots a hair, the controller knows (because of the encoder) and it doesn't lose sync with the threads. The Z just keeps going down a little until it reverses. I can rigid tap 3/8-16 at 500RPM and set the depth within 0.025" of the bottom of a blind hole (with a .5sec decel). Finer threads can get closer to the bottom, of course.

Assuming your controller supports it, this setup should also be able to peck tap. Nothing like tapping a 5/8 hole in 3 or 4 pokes!

Wow, thanks guys for sharing so much knowledge. Really appreciated!

I’m just going through the basic vfd setup now and hopefully will wire up the motors included encoder. I already have the recommended 100 ohm 300w brake resistor but have to find the way to enable it. Someone mentioned it’s hidden in the overload settings. I’m going to call Automation Direct where I bought the DynaPule GS3 22P0 Vfd to inquire about this. They seem to have had a relationship / partnership with Marathon at one time, so perhaps they have pre canned setup instructions. Likely the question of Ohms can be answered. The use of the auto tune feature might have to wait a bit as I need to get some help with removing the motor from the mill head ( bum shoulder currently ). The pulley on the motor is probably a couple pounds so I assume that needs to be removed for the auto tune to be effective, too. The assumption being that the auto tune still needs to rely on the motor name plate data to auto tune properly. Extra ‘cargo’ from a heavy pulley would alter the ‘baseline’, I assume.

I actually have two encoders in play. The motors included dynapar d20 1024ppr encoder which will connect to the optional VFD’s feedback card GS3-FB. I believe this just allows the vfd to maintain constant rpm at constant torque. I thought I read somewhere that if you use the feedback card this way you should [edit] NOT use the auto tune. ( see below, I was wrong ! )

I also have an Omron 2000ppr quadrature encoder being driven by the spindle directly (1:1) to give the acorn spindle position for rigid tapping. There is a draft document supplied by Centroid that goes into the details for setting up for rigid tapping so that should help. This is something I have wanted to be able to do for quite some time. My brother is fantastic with a Drexel however when it comes to me I don’t have that much ability, so I rely on CNC ( I can’t seem to tap something straight for the life of me ! ;-). Just ordered some machineable wax to use to test with, once it’s all wired up and tuned. So goes the journey. Thanks again guys!

[edit]
I just got off the phone with Automation Direct regarding the VFD questions above. Here are the Q and A's :

Q: What parameter needs to be set to enable the brake resistor ?
A: 6.05 , set it to 1. Over voltage stall prevention ( disable )

Q: What Ohm should be set from the motors nameplate in Parameter?
A: Just leave it default and use the auto tune to figure that out.
Auto tune figures out parameter 06 : Motor Line to Line ResistanceR1
and parameter 07 : Motor No-Load Current

Q: Can Auto Tune be used to set up the motor when using a feedback card / encoder ?
A: Yes, no reason why it can't be.
( obviously I read something wrong previously )

Q: Removal of the pulley which weighs a few pounds, is necessary during auto tune , correct?
A: Yes

Jake
 
Last edited:
Back
Top