What's new
What's new

Fanuc Dynamic work offset for 3+1 work on a horizontal

I've never understood WSEC (G54.4).

1) I have my part on the table. I probe it into position and set it as G54. I invoke G68.2 and have it rotate the part to the orientation I want, things get machined, we're happy!

2a) Where does Workpiece Error Setting Comp come into play in the above scenario? Any error in the part is taken care of with probing it and updating the G54 main work offset position.
2b) If I get really fancy with the probing on a 5 axis, I can even probe any angular error in the part and set that G54 offset with A and C axis updates to tilt the part into the correct orientation.

3)The gist I get of WSEC is that I have a fixture set at G54 with a part in it. If that part is not in the fixture perfectly, I can use WSEC to add compensation to that main G54 offset... but that seems like a layer of abstraction I don't really need, right?
It's a little complicated if you just go to the WSEC section and read the manual. FANUC manuals are written a bit differently than one might expect. Each section builds on previous sections as opposed to standing on their own. The reason for this is there are dependencies in a lot of FANUC functions.
1)Yes. Set work offset, if the part is where it's expected to be then you're good.
2a) Maybe, maybe not. Take a casting or maybe even re-work for instance. You could very well have RPY (Roll, Pitch and/or Yaw) error in the setup because every casting is different. G54-G59 and G54.1P1 though G54.1P399 are only "good" at linear positioning.
2b) Tilt error... not so much. Theoretical Axis error... DEFINITELY NOT! Rotary error... meh. Depends on the 1/2 kinematic offset (#19703 or #19704 in table-table machines).
3) Depending on the error you have in the part setup, you may not be able to correct for it any other way other than complicate a setup (jack screws, shims, indicating, etc...).

It's a VERY worthwhile function, You can correct for Tilt Axis and Theoretical Axis errors that you cannot effectively correct any other way other than a physical setup change. The WSEC function was created to simplify setups when those less than ideal conditions exist.

HTH
 
I've never understood WSEC (G54.4).

I have my part on the table. I probe it into position and set it as G54. I invoke G68.2 and have it rotate the part to the orientation I want, things get machined, we're happy!

Where does Workpiece Error Setting Comp come into play in the above scenario? Any error in the part is taken care of with probing it and updating the G54 main work offset position.

As described, your positional error correction doesn’t actually track with rotation.

Simple example. Part is sitting .002in high in soft jaws, and your G54 is programmed from COR.

If you probe and shift G54 up .002 in in Z, that messes up the position in X/Y when the table tilts.

With G54.4, you simply shift .002 in Z, and let the machine figure out what that does to X/Y when you tilt.

G54.2 is capable of doing basically the same thing, but is intended to function as its own independent work offset, not a correction factor. IIRC G54.2 cannot be used with TCP active. G54.4 can.

Honestly, with FANUC/Mits, it all kinda sucks. Siemens and HH handle five axis positioning and error handling much better. It’s all just baked into the standard tilt/rotation cycles.
 
Honestly, with FANUC/Mits, it all kinda sucks. Siemens and HH handle five axis positioning and error handling much better. It’s all just baked into the standard tilt/rotation cycles.
I've spent a fair amount of time on Siemens and FANUC. I can't speak on Heidenhein or Mitsubishi. FANUC doesn't "suck", it's just different. FANUC breaks down the functions individually so you can use the correct function for the right situation. In reality one could just go with G54.4Px G43.x and be done with it...

Part of the key to understanding is having effective Applications Engineers that can demonstrate and explain the functions to the operators, setup team, and programmers. And of course having a good post goes without saying. With those two things WSEC, TWP, TCP, etc... no factor. Just another tool in the toolbox.

The effective AE transfers their knowledge and understanding to the end user so there are fewer mysteries at the control.
 
As described, your positional error correction doesn’t actually track with rotation.

Simple example. Part is sitting .002in high in soft jaws, and your G54 is programmed from COR.

If you probe and shift G54 up .002 in in Z, that messes up the position in X/Y when the table tilts.

With G54.4, you simply shift .002 in Z, and let the machine figure out what that does to X/Y when you tilt.

G54.2 is capable of doing basically the same thing, but is intended to function as its own independent work offset, not a correction factor. IIRC G54.2 cannot be used with TCP active. G54.4 can.

Honestly, with FANUC/Mits, it all kinda sucks. Siemens and HH handle five axis positioning and error handling much better. It’s all just baked into the standard tilt/rotation cycles.
With TWP, programming to cor is obsolete, but in your theoretical situation G54 offset equals the xy(z) center of rotation values in the control. Moving g54 .002 in z to comp out part height will be translated correctly at any rotation by the machine with G68.2, as that’s the point of it. With all rotary parameters set correctly, I’ve never see WSEC used… op 1, op 2…. Castings… just probe the part to match wherever the offset is positioned in cam and let it eat.

The reason the waters are murky regarding this is not a question of what all the functions do (although that is confusing), it’s because not all controls can just take the features right out of that box.

The way cycle 800 functions on Siemens in nearly identical to g68.2
 
@Billy_C what the other functions (G68.2, G54, G54.2) cannot correct is theoretical axis error. So on a B/C (rotate around Y and Z) machine A-Axis doesn't exist. G54.4 will compound B and C to make the part flat then perform a coordinate rotation internally on top of that to align the program to the part.

A large problem I've seen over the years is improper terminology is what muddies the waters and exacerbates the confusion. To many, all these functions are called "dynamic offsets". Fact is only G54.2 has dynamic in it's title.
 
@Billy_C what the other functions (G68.2, G54, G54.2) cannot correct is theoretical axis error. So on a B/C (rotate around Y and Z) machine A-Axis doesn't exist. G54.4 will compound B and C to make the part flat then perform a coordinate rotation internally on top of that to align the program to the part.
This is a fantastic explanation and use case. Multiple angle correction seems like the big thing G54.4 brings to the table, not simple xyz translation.
 
The more i read the comments the more confused i get about all these functions and their uses.:crazy:
Really show me that i know rats ass about Fanuc controls.:rolleyes5:

FANUC manuals are written a bit differently than one might expect
You're putting it lightly.

I'll just stick with G68.2 as it seems to be the most easy to understand.
Program, spit out the code and be done with it. No G10s no Macros and no hand editing the code.
 
These are the controls with their respective part numbers the Tilted Work Plane function is available on;

30iB Controls; A02B-0323-R522 is the part number.
31i-B5 Controls; A02B-0326-R522 is the part number.
31iB Controls; A02B-0327-R522 is the part number.
32iB Controls; A02B-0328-R522 is the part number.
30iA Controls; A02B-0303-R522 is the part number.
31i-A5 Controls; A02B-0306-R522 is the part number.
31iA Controls; A02B-0307-R522 is the part number.
0iMD Controls; A02B-0320-R522 is the part number.
0iMF Controls; A02B-0340-R522 is the part number.

This option does not require a FANUC Engineer to install unless your control does not meet the CNC System and Edition Software Requirements and/or the hardware requirements. Be prepared to send the CNCIDNUM, CNC-PARAM, and SYSTEM text files. FANUC will need them to determine any additional requirements your control may need for the function.

There's roughly a half-dozen parameters to set if they have not been pre-set by the factory. They typically have not been factory set. Which parameters and what to set them to are not always straight forward. This happens when a machine tool builder makes a non-standard decision. A non standard decision could include but is not limited to rotary axis direction, rotary axis number/address, etc... I've installed it on Matsuura HMC's, Toyoda HMC's and Enshu HMC's. All 3 were roughly the same install and the same parameters. Typically FANUC will NOT set the appropriate parameters. That is up to your individual machine tool builder and/or machine tool dealer.

Side note; all machine tool dealers are NOT created equal.

Hope this helps.
Thanks. i'll keep that in mind.

I contacted Fanuc and our local dealer but didn't get an answer from the dealer yet.

And yes there is a huge difference between dealers! They can really sour your perspective about brands.
 
The more i read the comments the more confused i get about all these functions and their uses.:crazy:
Really show me that i know rats ass about Fanuc controls.:rolleyes5:


You're putting it lightly.

I'll just stick with G68.2 as it seems to be the most easy to understand.
Program, spit out the code and be done with it. No G10s no Macros and no hand editing the code.
G68.2 is for 3+2 only. Rotary motion is not allowed.

G54.2 can do rotary but it's not advised on 5-Axis machines because the 1/2 Offset Kinematic values are not accounted for. Even in 3+2 this can be problematic depending on the values in #19703, #19704 and #19705.

G54.4 is Error Correction. You can correct for not only linear errors but for primary, secondary and theoretical rotary axis error AND takes into account the kinematics, AND can do it all in Simultaneous 4+1 and 5-Axis cutting.

The problem with "I'll just do... and be done with it..." idea is it gets programmers in trouble more often than not and gives the machine/control a bad name.

It's just like getting in a manual transmission car and driving it exactly like one drives an automatic car then complains about the car. The problem isn't with the car, it's with the operation of the car.
 
@Billy_C what the other functions (G68.2, G54, G54.2) cannot correct is theoretical axis error. So on a B/C (rotate around Y and Z) machine A-Axis doesn't exist. G54.4 will compound B and C to make the part flat then perform a coordinate rotation internally on top of that to align the program to the part.

A large problem I've seen over the years is improper terminology is what muddies the waters and exacerbates the confusion. To many, all these functions are called "dynamic offsets". Fact is only G54.2 has dynamic in it's title.

Can't I correct for that theoretical axis error in my main G54 part offset, and the coordinate rotation when I turn on G68.2 handles it from there?

Scenario:

I have a 5 axis machine with G68.2 and TCPC, along with relatively advanced probe packages. I've got a 3D printed part I need to machine features into, and I've given that part a datum hole I can probe at multiple depths to calculate any skew or misalignment. In a perfect world, that part is programmed off of a standard work coordinate taken off the datum hole at X2.0 Y0.5 Z1.0 A90 C0.0.

Throw the part in the machine, run my probe routine to align the part. I wind up with an updated G54 work offset of: X1.9 Y0.49 Z1.1 A91.2 C1.44.

When I invoke G68.2/TCPC, isn't it doing all the real-time trig off of the COR just fine? By probing the standard work offset with the corrected values for the setup, doesn't that take care of all the workpiece setting errors and it just runs?

With Workpiece Setting Error Comp, I would still program off of G54, but that theoretically perfect work offset would not change. Instead, I would probe the part and put the delta values into WSEC P1 - so in this case, they would be X.1 Y-.01 Z0.1 A1.2 C1.44. I would program off of G54, but I would invoke G54.4 P1 to apply the corrected values using WSEC, then I would switch on G68.2 or TCPC...

What precisely is this layer of abstraction from WSEC bringing to the table for me?

Theoretically, when I put my next part in and probe it, I don't need to worry about the G54 offset driving my probing routines being way out of wack from the previous part's settings, but I can get around that by copying the "ideal" G54 values to G55 and driving the probing from that offset, leaving it untouched throughout the process.
 
It's just like getting in a manual transmission car and driving it exactly like one drives an automatic car then complains about the car. The problem isn't with the car, it's with the operation of the car.

This situation is entirely on Fanuc for taking relatively simple concepts and implementing them with as many layers of complexity as possible, while providing murky documentation and refusing to produce adequate, modern training materials. On top of that, Fanuc enforces no standards for how their controls get implemented on a machine tool - you can go on Alibaba and buy a complete control/servo package and have at building a totally junk machine that still has the vaunted "Fanuc Control!" name on it.

Handenhain discriminates on who they sell a control to, so you have some level of assurance that a TCN controller machine is not going to have been badly tuned, or the builder/distributor screwed you over by not optioning the control with all the appropriate options you need, but never even heard about until you purchased the thing and found out it was missing deep-in-the weeds control functions.
 
G68.2 is for 3+2 only. Rotary motion is not allowed.

G54.2 can do rotary but it's not advised on 5-Axis machines because the 1/2 Offset Kinematic values are not accounted for. Even in 3+2 this can be problematic depending on the values in #19703, #19704 and #19705.

G54.4 is Error Correction. You can correct for not only linear errors but for primary, secondary and theoretical rotary axis error AND takes into account the kinematics, AND can do it all in Simultaneous 4+1 and 5-Axis cutting.
thanks for the further explanation.

The problem with "I'll just do... and be done with it..." idea is it gets programmers in trouble more often than not and gives the machine/control a bad name.
While i agree with your statement playing with G10 and macros is a big no no for me.:)
 
1) Can't I correct for that theoretical axis error in my main G54 part offset, and the coordinate rotation when I turn on G68.2 handles it from there?

Scenario:

I have a 5 axis machine with G68.2 and TCPC, along with relatively advanced probe packages. I've got a 3D printed part I need to machine features into, and I've given that part a datum hole I can probe at multiple depths to calculate any skew or misalignment. In a perfect world, that part is programmed off of a standard work coordinate taken off the datum hole at X2.0 Y0.5 Z1.0 A90 C0.0.

Throw the part in the machine, run my probe routine to align the part. I wind up with an updated G54 work offset of: X1.9 Y0.49 Z1.1 A91.2 C1.44.

2) When I invoke G68.2/TCPC, isn't it doing all the real-time trig off of the COR just fine? By probing the standard work offset with the corrected values for the setup, doesn't that take care of all the workpiece setting errors and it just runs?

3) With Workpiece Setting Error Comp, I would still program off of G54, but that theoretically perfect work offset would not change. Instead, I would probe the part and put the delta values into WSEC P1 - so in this case, they would be X.1 Y-.01 Z0.1 A1.2 C1.44. I would program off of G54, but I would invoke G54.4 P1 to apply the corrected values using WSEC, then I would switch on G68.2 or TCPC...

4) What precisely is this layer of abstraction from WSEC bringing to the table for me?
1) No. Work Offsets should be primarily for linear positioning only. You can put rotary (not tilt) correction there but you can run into tolerance issues depending on the values in the kinematic 1/2 offsets. If you put a value in the tilt axis it won't be applied correctly when G68.x, G54.4, G43.x are activated. There is no theoretical axis field in G54-G59/G54.1P1-G54.1P300. The theoretical axis field is only in the WSEC table. In WSEC you have an "x","y","z","a","b","c", a Primary Tilt Axis and Secondary Rotary axis field. I suppose you could on your own measure the theoretical axis error, but then YOU have to do all the math for everything. G54.4 eliminates that need.

2) Yes it is. However, in a work offset you only have the 3 linear axes and the primary and secondary rotary axis to work with. In G68.x, I suppose you could figure out which I, J, K to add a value to to correct for theoretical axis error, but that doesn't solve for G43.x because you can't use G68.x in rotary paths.

3) Yes

4) It's not an abstraction, it's doing the trig,1) it's accounting for machine kinematics, and 2) it's able to account for a theoretical axis... which a work offset cannot do.

What is the difference between having multiple functions (G54.4, G68.x, G43.x) and having a single G code with 12 different arguments on the line? I don't see a REAL difference. There's a percieved difference. But even Siemens has the same deal as FANUC if you really break it down. CYCLE800, TRAORI, TOROT, PAROT, TCARR, etc...

You know what the 12 arguments on a Heidenhein are, how and when to use them, I know what the 3 functions and their sub-functions are, how and when to use them.
 
This situation is entirely on Fanuc for taking relatively simple concepts and implementing them with as many layers of complexity as possible, while providing murky documentation and refusing to produce adequate, modern training materials. On top of that, Fanuc enforces no standards for how their controls get implemented on a machine tool - you can go on Alibaba and buy a complete control/servo package and have at building a totally junk machine that still has the vaunted "Fanuc Control!" name on it.

Handenhain discriminates on who they sell a control to, so you have some level of assurance that a TCN controller machine is not going to have been badly tuned, or the builder/distributor screwed you over by not optioning the control with all the appropriate options you need, but never even heard about until you purchased the thing and found out it was missing deep-in-the weeds control functions.
Maybe, then again maybe not.

Standards of implementation. Fair enough. I've got a fair amount of experience with a number of machines that are FANUC controlled. One does things COMPETELY different from the others. The one uses DATA bits to do all the things the other builders use Keep Relays to do. We asked for a ladder modification one time and they said they were out of DATA bits. I said "...ya know every other builder I know controls that stuff in Keep Relays, why are you using DATA bits?" In hindsight I should not have said anything <laughter>. To say they got indignant would be quite the understatement. All that said, when you buy a product from a company, what they do with it is up to them. You can buy a crate motor, put new chips in the computer and end up with a completely different product. They have no control over how you tune that engine. Obviously there's parameters you cannot exceed or failure or worse will ensue.

FANUC offers all the information integrators need to implement their controls in their CNC applications. Heck, they even offer training for the CNC laymen in most of their US tech centers. I took the 4 and 5-Axis Functions Class a few yerars back to get a better handle on the WSEC function. After that class the function became clear, AND once we figured out some probing software stuff... that was a whole other issue <laughter>, but we're solid on that now too. I think EVERY machine tool dealer should adequately train their AE's. Few do. Even fewer will send them to a class. Personally, I'm hoping to get the Custom MACRO B class under my belt some time this year. I know probably 90% of it... just like I knew 90% of the 5-Axis functions before I took the class... that last 10% is always the most challenging. Maybe the CNC companies that implement Heidenhein controls require their AE's to get properly trained before they go out and train customers. If they do, kudos to them. I think that's a solid business strategy.

Now, how you apply a function on a head/head machine is going to be different than how you apply it to a head/table, table/table, a nutating head, a nutating table, or some other complex machine configuration. A FANUC control can control that machine, and it's pallet magazine, and it's tool magazine, and the pallet workstation, and a robot, all at the same time, all with the same control, and do it reliably, year after year, decade after decade. Heidenhein cannot make that claim. Fact of the matter is Heid's first control (VRZ 59.4 or something like that) didn't come out until 8 years after FANUC's 220 Control. FANUC controls guarantee parts availability 25 years after discontinuation, but I digress.

"Murky documentation"... perhaps. I have a FANUC 6M Manual (probably late 1980's vintage) and yeah, 100% the Jinglish... yeah, it is definitely strong there. However, since the 16/18 era (mid 1990's), things have cleared up significantly.

"Heidenhein discriminates on who they sell a control to...". Hate to break it to you @gkoenig , you have been misled. They most certainly do not discriminate. They will sell a control to a guy building a CNC in his garage just like every other motion control company will. I personally know a guy in Canada that did that very thing and he had to do all the setup and servo tuning himself.

As far as options go, there is such a thing as "price point". Everything has a cost. If a machine tool builder needs ot keep a cost in a certain range there are only so many places they can control cost. Options is one of them. I don't like it any more than anyone else does, I just understand it. That said, FANUC has option packages. There's one option package that has all the function options that people should have on a 5-Axis machine. The high end 5-Axis builders that typically utilize FANUC controls (Mitsui Seiki, SNK, Makino, Yasda, Matsuura, G&L, MCM, Parpas, etc...) properly option their machines. A great many others... especially commodity machines do not. And sadly more often than not, are not up front about it. That is not a FANUC problem, that is a machine tool builder/dealer problem. Do some control manufacturers give away option packages? I don't doubt it. Honestly, controls like Mitsubishi, Heidenhein, Siemens, Fidia, etc... they are all trying to gain market share so they HAVE to do that. Now, will FANUC make changes in the way they handle options in the future? I guarantee it. They dislike the game even more than you or I do. It hurts their brand. It hurts their customer relations. It hurts everything.

JM2CFWIW
 
@MaticB sorry for derailing your original question.

So many of these functions are inter-related and it's really worthwhile to take a trip down the rabbit hole, if for no other reason than for educational purposes. :cheers:
 
At my last job I setup the post and loved me some G54.4 for a pair of Mazak Variaxis I-700's. These were on a palletech system so I used G10 to load pallet offsets, G54 was (A0. C0.) probed work offset and then invoked an M110 macro I created to calculate the difference from C.O.R. to G54 and spit those into the G54.4 field. Worked perfect for infinite rotary positions and simultaneous motion (G43.4). It got way over my head when trying to probe and calculate the theoretical axis but I did get it to work very well for op 2 on a particular job.

On the other hand for the horizontals I wrote a macro very similar to the one posted above, although much simpler. It would involve creating an alias g or m code that would calculate the offset from COR and update additional offsets based on their rotation. It was dead simple and works well for my five axis setup at home as well.

My home setup program header for each orientation consists of for example G06 S2. B-90. C90. X0 Y0 Z0 I0 J0 K0. This translates to G55 at B-90. C90. with option to offset XYZ before translation, or IJK after translation. I built the XYZ IJK shift option into the macro but have never needed to use it. If anything is off I recalibrate C.O.R.

I'm only trying to say there are many creative ways to tackle this, and on a horizontal the dead easiest is to have a macro that can transform offsets. Gibbs-cam allows me to simply post each rotation as new G## offset, and the macros handle the rest. The un-modified post doesn't handle the G06 codes as demonstrated but it will let me write them in the program header. It would look like G06 S2. B-90. C90., G06 S3. B-45. C0., G06 S4. B-90. C0. (update transformed offsets G55-G57 while G54 remains B0.C0.
 
Found something in the archive....I've never used it. I do not guarantee it's fitness or accuracy.. yadda, yadda, yadda.

And since we're going down THIS rabbit hole, we may as well make it a custom G/M Code while we're at it since anything worth doing is worth overdoing.
 

Attachments

  • O9018 Dynamic Coord Rotation Fanuc 7-11-06.txt
    3.1 KB · Views: 10
  • Dynamic Work Offset Rotation Manual.pdf
    140.9 KB · Views: 10
  • Custom MACRO call by G or M-Code Installation Procedure.pdf
    71.2 KB · Views: 9
can you confirm this is doable on a nhp4000? We have been trying to get this function. Currently we use fixture offsets. g54 CL and g54.2 p1 fixture offset.
I can confirm this. This is the option we have installed on numerous HMC's across our line. The real problem lies with the dealers, who are mostly ignorant of the exact details. And by ignorant, I mean not knowledgeable. They end up coming to us or me specifically.
 
Found something in the archive....I've never used it. I do not guarantee it's fitness or accuracy.. yadda, yadda, yadda.

And since we're going down THIS rabbit hole, we may as well make it a custom G/M Code while we're at it since anything worth doing is worth overdoing.
James is new/newer here. I know him from the EMastercam forums. I want to thank you James for coming here and giving us a clear explanation of these options. A wealth of knowledge on all things 5 axis. He is correct about Fanuc and their options simply working although it takes a bit to get knowledgeable about them. But Fanuc doesn't do themselves any favors by letting the MTB's do the educating when a lot of the MTB's can't extract themselves from a paper bag. Some, like us at the beginning, had no knowledge whatsoever of practical 5 axis machining and how it applied to our machines. I'm talking about the deep interconnection of some of these options and how they relate to each other. Or, more importantly, how one or more don't relate whatsoever to another.
 








 
Back
Top