I'm trying to wind some springs for one of our research labs. I'm using incremental moves with feed per rev values and manually turning the spindle. The problem I'm having is that in order to work correctly, the feedrate override needs to be set to exactly 100%. I know the threading routines somehow bypass the feedrate override and operate at exactly the programmed feedrate. How can I control this behavior in my program?
; SpringWind.CNC
;
; No spindle start callout so chuck can be manually rotated
; Incremental positioning starts from current location and moves towards tailstock
;
G21 ; metric units
#100 = 3.175 ; spring wire diameter
#101 = 2.0 ; number of starting (closed) coils
#102 = 2.0 ; number of ending (closed) coils
#103 = 5.581 ; number of open coils
#104 = 27.364 ; pitch of open coils
IF [#104 < #100] GOTO 01 ; open coil pitch less than wire diameter
G99 G01 ; feed per rev moves
W[#100 * #101] F#100 ; use incremental positioning for Z
W[#103 * #104] F#104
W[#100 * #102] F#100
N01
; program end
I guess I can read parameter 25015 (assuming floating point value 0 to 1 - manual doesn't say) and divide my feedrates by that, but I was hoping for some way to temporarily disable the override for the feed/per rev moves.
Cheers,
Tom
Confidence is the feeling you have before you fully understand the situation.
I have CDO. It's like OCD, but the letters are where they should be.
Just trying to get some idea what format variable #25015 (feedrate override) is in and I come up with cannot read the variable:
{Edit} From looking at the PLC program, it looks like Word 4 ("FinalFeedOverride_W IS W4 ") should also have what I need but I get the same unable to read the variable error when I use #96004 which should be W4.
Cheers,
Tom
Confidence is the feeling you have before you fully understand the situation.
I have CDO. It's like OCD, but the letters are where they should be.
Okay, answering some of my own questions here. Variable #25015 feedrate overide is in percent (i.e. 45%). I don't quite understand the rules for M22x functions, but if I set a user variable (i.e. #105) to either 25015 or 96004, then have the M200 line display the user variable, it works without an error.
So, I have a work-around to negate the effects of the feedrate override knob affecting my spring pitches:
; SpringWind.CNC
;
; No spindle start callout so chuck can be manually rotated
; Incremental positioning starts from current location and moves towards tailstock
;
G21 ; metric units
#100 = 3.175 ; spring wire diameter
#101 = 2.0 ; number of starting (closed) coils
#102 = 2.0 ; number of ending (closed) coils
#103 = 5.581 ; number of open coils
#104 = 27.364 ; pitch of open coils
IF [#104 < #100] GOTO 01 ; open coil pitch less than wire diameter
G99 G01 ; feed per rev moves
W[#100 * #101] F[#100 / (#25015 / 100)] ; use incremental positioning for Z and
W[#103 * #104] F[#104 / (#25015 / 100)] ; adjust for feedrate override
W[#100 * #102] F[#100 / (#25015 / 100)]
N01
; program end
However, I still would like to know if there is a way to temporarily disable feedrate override programmatically.
Cheers,
Tom
Confidence is the feeling you have before you fully understand the situation.
I have CDO. It's like OCD, but the letters are where they should be.