What's new
What's new

Fanuc 18i-tb problem g84/g184 programing

kenwood2

Plastic
Joined
Jun 4, 2020
Hello all.

Im truing to tap a M6 thread with the vdi 90deggre tool holder. The machine is leadwell t6-smy dual spindle Y-axis and turret with live vdi tools.
My program is looking like this.

G40 G80 G54 G98
G30 U0
G18 (zpxp plane selection)
G97
T0909
M90 (C1 AXIS ON MAIN SPINDLE)
G28 H0
C30.
G0 z2. x60.
M29 S200 (RIGID TAOOING ON)
G184 Z-10. R0 F0.8 (G184 for vdi live tools tapping)
G80
G30 U0
M30.


The machine is giving me alarm 204 illegal axis operation,

Here is an M code list for that machine T6 - Google Drive
Tell me if you can't see it.

Btw the G84 is working when im not using vdi turrent ,to rotate the tap tool.
If im rotating the main spindle and using g84 all is fine.

Can someone help me.
 
There is a good chance that your leadwell is configured the same as my doosan which is also a 18i-tb.

The clue is that you have a pair of m-codes, M65 and M66, that enable and disable PMC axis control.

On my doosan, these m codes exist because the motor that drives the live tools is actually a servo motor, not a spindle motor. It is the same servo motor that rotates the turret. When it is used for rotating the turret, it is controlled by the PMC and not the NC. When it is used to drive the live tools it is disconnected from the PMC, and becomes the E axis on the control.

Because it is actually a fully controllable axis, Doosan were able to cheap out on control options and not specify rigid tapping, instead using macros to rigid tap using E-X and E-Z interpolation. On my doosan G184 and G187 are just mapped to 9000 series programs that contain the rigid tapping macros. They do not use M29 because they do not use the rigid tapping function of the control.
 
Yes i have 2 3 programs O9000 for the G184 and G188.
You say to remove the M29 and try M65 or M66 comand?
 
If i remove the M29 comand the machine is passing the g184 ,but nothing happens (it's like skipping it). Hope you understand.
 
If i remove the M29 comand the machine is passing the g184 ,but nothing happens (it's like skipping it). Hope you understand.

In that case it's likely that you're using the wrong arguments in your G184. On my doosan, they are completely different to G84. Assuming you don't have any documentation explaining it's use, you need to figure out which 9000 program is mapped to G184 and post it here in it's entirety.
 
I think the G184 is mapped to O 9000 O 9014 programs because when the error 204or130 (they are the same illegal axis operation) comes ,most of the times program is stopped in O 9015 G184 W-TAPPING MM on line G00 A0..
See the photo. Imgur: The magic of the Internet

I think i have all the documentation for the machine but can't find any information for g184 tapping
 
You'll need to show us the whole 9014 program, but immediately from that picture I can see that you need to specify at least S, W, and F arguments when you call G184.
 
Here is the O 9014 program

%
O9014(G184 W-TAPPING MM)
IF[#23EQ0]GOTO3001
IF[#9EQ0]GOTO3002
IF[ABS[#23]GT100.]GOTO3003
IF[#9GT2.5]GOTO3004
IF[#1001EQ1]GOTO3005
G00X#24C#3
G00A0.
G10L50
N1422R48000
G11
#100=ABS[#23]
#101=#4001
#102=#4002
#103=#4005
#104=#4109
#105=ABS[#23]*36./#9
#106=#19*#9*20000
#107=#100*25.4
G98G21
IF[#1000EQ1]GOTO1000
G1W-#100A#105F24000
G4X.3
G1W#100A0.
GOTO1200
N1000
G1W#100A#105F24000
G4X.3
G1W-#100A0.
N1200
G21
G#101G#102
G#103F#104
G10L50
N1422R10000
G11
GOTO9999
N3001#3000=1(TAPPING W=0)
N3002#3000=2(TAPPING F=0)
N3003#3000=3(W OVER)
N3004#3000=4(F OVER)
N3005#3000=5(C#1 & C#2 SYN.)
N9999
M99
%
 
Firstly, be very careful with everything I've written below. Remember that I am not familiar with your machine and am making assumptions based on how my machine works.

A appears to be the relative address of the live spindle axis. It is probably not usable without decoupling it from the PMC first. On my machine this is done inside the tapping program, but does not appear to be there on yours. This is where the M65 and M66 codes come into play. Probably you will have to call M66 before G184, and M65 afterwards. Be careful with this - perhaps try it in MDI first.

M66;
G0A0;
A180;
A180;
M65;

See what happens.

It looks like you need to call G184 with the following format:

G184 Xx. Cx. Wx. Fx.

S is referenced in the program but doesn't appear to be used anywhere. It actually seems like this program is pretty rough, I'd be careful with it. It's possible that there is no documentation for it because it was written by a previous owner and not the machine builder.

Lastly, your 9014 program is modifying parameters. 1422 is max. feedrate of all axis, and it's turning it up very high, presumably to allow a higher tapping speed than would otherwise be possible, then turning it back down again. This means that you will need to be very careful that anytime you run either of these tapping programs, that they complete properly. Otherwise parameter 1422 will be left incorrectly set. If you ever stop one of them mid-cycle you will need to run them again immediately afterwards to make sure the parameter is correctly reset - there may be some special recovery procedures or other macro programs on your machine for this.
 
Hello kenwood2,
Not the best written Macro I've seen. It only error traps for W and F to be within the range of:
W>0 <100.
F>0 <2.5

S(#19) is used in calculations for allocating a value for #106, but there is no error trap for it being omitted as an argument. However, notwithstanding that a value for #106 is calculated, its not used. There is an Interpolation of the W and A axis so S would be redundant, therefore, I see no point in #19 being specified in the Macro.

There are calculations for #106 and #107, neither of which are used.

System Interface variable #1000 is used to direct the program but that is up to the MTB as to what that signal is. You may have it in documentation. It appears that it relates to which spindle is being used and therefore the direction of W.

So it seems to me that only X, C, W and F need to be passed to the Macro but only the omission of W and F would cause the program to Fall Through without doing anything; there are no error traps for X or C. Omitting X could be a real issue, as it would have a value of Null and in this case, the Address is ignored. If X is omitted as an argument #24 will have a value of Null. If a command such as:

G00 X#24 Z10.0 is executed, then it has the same meaning as G00 Z10.0. This may or may not be an issue. In my opinion, error trapping should be used for the omission of X, along the lines of:

IF[#24EQ#0]GOTO3006
--------
--------
--------
N3006 #3000=6 (MISSING X VALUE - FIX)

Sorry Gregor for cutting across your reply, you Posted whilst I was still typing; you covered just about all I said.

Regards,

Bill
 
Finally it's working. I changed nothing in O 9014 program

The program like this:
g40 g54 g80 g98
G30 U0
T0909
g18
M90
G28 H0.
C30.
G0 X60. Z5.
G184 z-35. w35. S1000 R0. F0.8.
.
.
.

And it's finally working...

Thank you all for the suport.
 
Finally it's working. I changed nothing in O 9014 program

The program like this:
g40 g54 g80 g98
G30 U0
T0909
g18
M90
G28 H0.
C30.
G0 X60. Z5.
G184 z-35. w35. S1000 R0. F0.8.
.
.
.

And it's finally working...

Thank you all for the suport.
Hello kenwood2,
Drop the Z argument in your Call Block; its not used in the Macro. An argument for address Z is passed to Local Variable #26 in the Macro; its not used.

The W address doesn't actually need to be signed in the Call Block as its used as an Absolute Value in the Macro and System Variable #1000 is used to set the direction of W. However, using a sign (+-) for W argument in the Call Block will make the program a little more understandable for anyone not familiar with how the whole system works.


Regards,

Bill
 
Finally it's working. I changed nothing in O 9014 program

The program like this:
g40 g54 g80 g98
G30 U0
T0909
g18
M90
G28 H0.
C30.
G0 X60. Z5.
G184 z-35. w35. S1000 R0. F0.8.
.
.
.

And it's finally working...

Thank you all for the suport.
Hello kenwood2,
Having had more time to look at your G184 Macro and the Call Block syntax you've settled on, the Z, S and R arguments are irrelevant. Although "S" is passed to the Macro, its not used in any way. Omitting X in the Call Block, as you have in your above example, will result in a tapping operation at the current X location. Including an "X" argument results in a rapid move to the specified X coordinate before the Tapping part of the cycle is invoked.

Address "R" is not used, nor is address "Z". Accordingly, the only arguments that need to be included in the Call Block are W and F, with X being optional. But you would need to ensure you position the tool at the required X location before calling the G184 Tapping Macro if X is omitted from the Call Block.

Regards,

Bill
 








 
Back
Top