What's new
What's new

Lathe: Work Shift for sub-side

FredIII

Plastic
Joined
Oct 4, 2019
I’m programming for Hardinge Conquest T42SP, Ser. #SGA-1741-B, GE Fanuc Series 18-T controller.
It is equipped w/ ram turret which is ideal for drilling.
Machining multiple parts from a slug, I use a variable that I increment w/ IF (logic) and math function.
G10P0Z#500 sets my Z work shift, but G10P0Y#501 does not work. How can I change or increment (with programming) the Y Work Shift for the ram (sub side) turret or the Offset B for the individual tool / turret position?
 
T101, T102, T103, etc. to T106 are tool positions on the sub side ram turret. T107 is an empty spot for safe indexing of main turret.
The WORK SHIFT page has settings for X,Z, and Y axes. there is also a col. for "measure"
If I move the sub side to a position, and enter Zero (0.0) in the measure field and press input, that position become the zero position.
I can change the Z WORK SHIFT in code of the program.
The programming code G10P0Z#500 will set my Z work shift to the value of the variable, but G10P0Y#501 does not work.
I run multiple parts from a blank or slug and use IF the counter variable is less than the max. count per blank, THEN increment the WORK SHIFT and restart machining.
I use the ram side for various END WORK drills. I'm looking for the proper syntax to change the Y zero position.
 
T101, T102, T103, etc. to T106 are tool positions on the sub side ram turret. T107 is an empty spot for safe indexing of main turret.
The WORK SHIFT page has settings for X,Z, and Y axes. there is also a col. for "measure"
If I move the sub side to a position, and enter Zero (0.0) in the measure field and press input, that position become the zero position.
I can change the Z WORK SHIFT in code of the program.
The programming code G10P0Z#500 will set my Z work shift to the value of the variable, but G10P0Y#501 does not work.
I run multiple parts from a blank or slug and use IF the counter variable is less than the max. count per blank, THEN increment the WORK SHIFT and restart machining.
I use the ram side for various END WORK drills. I'm looking for the proper syntax to change the Y zero position.

I've got a T42 with sub-spindle not the end working turret. But I've wanted to set the Y-axis* work shift with G10 several times, but never been able to figure out how, sorry but please update if you find a solution.

However I have set tool offsets using G10 before, which in your case may work(never ran a machine with end working turret). Does your machine have tool offsets table specific for the end working turret, Z geometry, and wear?
If so, those might be accessible with G10. It's been a couple years but as I recall G10 P10013 Z-.25 would set tool offset geometry 13 Z too -.25. You could replace geometry offset with some variable math(assuming you can find the correct range of offsets).

Not nearly as clean/easy of a method, as setting Y. Also leaves a whole nother level of gotcha's, and potential crashes.:nono: But I've done worse and not had a problem.:leaving:

*Those that don't know Y-axis is parallel to Z-axis on these machines. Most other machines I think this would be Z2-axis or maybe B or E axis.
 
I did come up with a work around:
%
O0304(PART NUMBER . . .)
(01.28.2020.FREDIII)
(T42SP)
(2.0 DIA X 5.285 +0.030/-0.0 LONG ALUM)
(4" SPINDLE ADAPTER W/2.0 POT CHUCK X 1.25 DEEP)
(-----------------------)
G20
G99
G40
G54
(--------------------------)
(NOT CHANGING WORK SHIFT, BUT )
(CHANGING G54 Z AN Y VALUES)
(START PART AT ZERO )
G10L2P1Z0.0Y0.0(SETS G54 Z AND Y VALUES TO ZERO)
(--------------------------)
(SET VARIABLES #500, #502 AND #503 AS NEEDED)
#500=-6.35550(SET AS NEEDED)
#502=15(SET VALUE TO MAXIMUM COUNT)
#503=-0.25500(SET VALUE TO SHIFT AMOUNT)
(THAT IS, THE AMOUNT TO CHANGE G54 Z AND Y VALUES FOR NEXT PART)
(------------------------------)
(N1 AND N99 ARE USED BY PROGRAM)
(DO NOT CHANGE N1 OR N99)
(VARIABLES #501 TO REMAIN AS IS)
#501=1.0(VARIABLE #501 USED FOR PART COUNTING)
#504=0.0(USED TO BOTH APPLY CAHNGE )
( AND TO RESET G54 Z AND Y)
(------------------------------)
G10P0Z#500
M01
(----------)
M98P1
(------------------------------)
N1
G54
(READ OR RE-READ SUB-ROUTINE )
(----------)
(START NEW PART)
(----------)
/M00(READY TO START?)
(------------------------------)
(SUB-ROUTINE FOR DRILLING AT N3)
(0.875 ALLIED SPADE DRILL POINT APPROX 0.200)
(G83Y VALUE = 0.250 + 0.200)
(G83 . . . . Q VALUE = PECKING AMT.)
(ONE SHOT DRILLING HERE. SEE IF IT WORKS OK)
G101(BEGINNING)
G28
T101
G0Y0.100(MOVE IN TO START DRILLING)
G99
G83Y-0.450Q0.555R0.100F0.018(DRILL CYCLE)

G80(MUST HAVE G80 CYCLE CANCEL)
G28
T107
M60(WAIT)
G100(END )
(----------)
M01
(----------)
N2
(----------)
(BODY OF PROGRAM)
(ROUGH & FINISH)
(CUT OFF, USING "BASKET" IN RAM TURRET )
( G110 T105, G110GOY-4.00)
(----------)
N12
(LOGICAL IF-THEN-ELSE)
(INCREMENT TOWARD SPINDLE FOR NEXT PART)
(OR REWIND TO TOP IF MAX. QTY. REACHED)
(--------------------------------------------------)
IF[#501GE#502]GOTO99(SET NUMBER OF PARTS PER BLANK REACHED?)

#501=#501+1.0(INCREASE COUNT)
(G54 COORDINATE SYSTEM SHIFT. MORE POSITIVE IS CLOSER T SPINDLE)
#504=#504+#503(G54 Z AND Y CHANGES AMT. #503, )
( SHIFT MOVE TOWARD SPINDLE FOR EACH PART)
(----------------------)
G10L2P1Z#504Y#504(APPLIES CHANGE TO G54 Z AND Y)
(----------------------)
(RAM TURRET TRAVEL MORE NEGATIVE TOWARD SPIDLE)
(INCREMENT TOWARD SPINDLE)



GOTO1(GO TO PROGRAM POSTION )
(AFTER INITIAL SETTINGS OF VARIABLES )
(AND BEFORE START OF MACHINING))


M01
(------------------)
(-----------------------------------------------------)
(SKIP TO HERE IF COUNT HAS BEEN REACHED)
N99M00(END OF STOCK)
(----------------------------------------------------)
(RESET G54 Z0.0, Y0.0)
G10L2P1Z0.0Y0.0
#501=1.0(RESET COUNTER TO ONE)
#504=0.0(RESET VAR #504 TO ZERO)
(-----------------)

M30(REWIND PROGRAM TO START POINT, BACK TO PROGRAM NUMBER)
%
 
Hi Fred, this is how Hardinge programs the ram turret on your machine. Not sure if this is what you are looking for. Daryl


:5108
#100=4.6004
(SET TO TOOL LENGTH)

#101=.050
(SET TO DEPTH OF CUT)

#102=#100-#101
(BORE DEPTH DIM)

#103=#100+3.00
(INDEX DIM)

#104=#100+.100
(RAPID POINT)

N1G110G0Y#103
G110T101
M98P5109
N2G110G00Y#103
G110T102
M98P5109
N3
G110G00Y#103
G110T103
M98P5109
N4
G110G00Y#103
G110T104
M98P5109
N5
G110G00Y#103
G110T105
M98P5109
N6
G110G00Y#103
G110T106
M98P5109
M30
:5109
M03S600
G110G98
G110G00Y#104
M08
G110G01Y#102F1.2
M09
G110G01Y#104F50.
G110G00Y#103
M99
 
Throwing this out there in case you ever need it.

RAM TURRET (NON-ABSOLUTE “B” CONTROL)
1]. NOTE: (Before Turret Set-Up Turn K2.3 ON, Before Indexing Turret Turn OFF)
2]. Adjust Decel Dog Until LED Just Goes Out
3]. Zero Return Turret:
In Zero return Mode, Press BLK-SKIP, Turret Will Raise Then Press And Hold ZERO RETURN And TURRET 2 Buttons, It Will Zero Return. If The Turret Does Not Line Up With Station #1, Move The Decel Dog Around And Find The Spot Where The Line Is Closest To Lining Up.
4]. Press HELP And SHIFT Keys At The Same Time. (Switching To Loader Control)
5]. Press SYSTEM Hard Key
6]. Press DGNOS Soft Key
7]. Press 301 NO SRCH
8]. Press REPEAT MODE
9]. Press PROGRAM 1 & 2 To Move The Turret And Line Up To Station #1
10]. When Station #1 Is Lined-up, Press REPEAT MODE,
11]. Press BLK-SKIP (Turret Should Sit Down)
12]. Record The Number In 301A
13]. If The Turret Was Moved Clockwise To Line Up Station #1, Take The Number From 301A And Input This Number In Parameter 1850A
OR-
If The Turret Was Moved Counter clockwise To Line Up Station #1, Take The Number From 301A And Subtract 360000 From It.(It Should Be Negative). Input This Number In Parameter 1850A
14]. Power Down Control, Then Re-Initialize.
15]. Re-Zero The Turret
16]. Make Sure Turret Sits Down
(If Turret Does Not Sit Down Repeat Steps 2 thru 15)
17]. Press HELP And SHIFT Keys At The Same Time. (Switching To Loader Control)
18]. Press SYSTEM Hard Key
19]. Press DGNOS Soft Key
20]. Input 300, Press NO-SCH Key
21]. Check Number In 300A.
22]. Rotate The Turret Through All Stations And Find The Highest Number.
23]. Take The Opposite Of The Highest Number Found, And Add This Number To The Number Already In Parameter 1850A.
24]. Power Down Control Then Re-Initialize.
25]. Re-Zero The Turret
26]. Repeat Step 21 (The Number Should Be  30 Counts)
27]. If The Number Is Not  30 Counts Repeat Steps 22-24
28]. Lock Down Set Screws On Decel Dog.
 
Another bit of info for the sub-spindle.

A problem was found with the ballscrew driven subspindle machine. Whenever the servo is turned off the position for the Y axis position will change. See example program below.

Oxxxx
G01 G98 F100.
Y12.0 Rapid to front of part
M67 Low torque mode
Y11.9 F10. Move onto part
M66 Servo mode off
X0. Cut off
M68 High torque mode
Y15. F100. Rapid Back

On both the M66 and M68 lines when the servo is turned off, in both cases the 11.9 position will change. If the position changes to 11.9006 then the move to Y15 will go to Y15.006. Because of the way Fanuc controls the position there is not way to prevent the position change, but we can minimize its effect.

The following needs to be done on all ballscrew driven machines.

1. Option 18-2929-24 needs to be turn on. (Workpiece Coordinate System)
2. Set parameter 3412 = 68
Set parameter 3413 =68
3. In the part program following a M66 or M68 the following line needs to be programmed
“G53 Y#5024”.

Basically G53 Y#5024 forces the control to verify the position. Thus when the position changes to 11.9006 and the next move is commanded the axis will go to the correct position.
 
Ok. I'll check this out closely.
Thanks.
I'm cutting 15 pieces from one blank.
running/advancing automatically (slicing off pieces) as the blank gets shorter/closer to spindle nose.
 








 
Back
Top