3dprintforums logo



Page 1 of 2 12 LastLast
Results 1 to 12 of 14

Thread: G92 And G54...G59

  1. #1
    Registered jorgehrr's Avatar
    Join Date
    May 2006
    Location
    USA
    Posts
    210
    Downloads
    0
    Uploads
    0

    Unhappy G92 And G54...G59

    Hi, please help me to understand -

    I'm trying to understand programs in machines centers. (I work with lathes)

    What is the difference, relation between G92(selection of coordinate system)
    and G54...G59. Aren't they the same (distance from machine zero and part zero) Do I need a G92 every time I programmed a G54...G59???

    Also, I see the H (high) offset in some machines is positive and in others is negative.

    And finally what are the G codes they need to be in a safety block.

    Thank you in advance

    Jorge



  2. #2
    Moderator HuFlungDung's Avatar
    Join Date
    Mar 2003
    Location
    Canada
    Posts
    4826
    Downloads
    0
    Uploads
    0
    When your machine boots up and homes itself, it establishes the machine coordinate system, and the origin of that coordinate system is typically set by parameter. The machine coordinate system is called G53 and it is the 'real coordinate system' upon which all the work shifts are based. The work shifts are your G54 to G59 and the coordinates associated with the work shifts are simple distances from the machine zero of the G53 machine coordinate system. You can always cancel a workshift by calling another workshift or making a move to a position in the machine coordinate system directly by calling a G00 G53 X.xxxx Z.zzzz

    G92 has a lot more power than a workshift. It applies new values to the machine coordinate system axis, essentially moving the G53 origin somewhere else (this is a simplification, not exact but close enough to serve as a warning).

    Thus, using a G92 supercedes all workshifts and will move them all, because the G92 represents new values assigned overtop the G53. Think of it as similar to reprogramming the axis displays to show values of your choice. Although in the background, the machine may maintain its own secret set of registers for the current position, what you see displayed will be fictitious axis values, but real enough to affect every program you run.

    You cannot cancel a G92 because it is not a workshift. Rather, it was a renaming of the G53 axis positions, so to cancel the effect of calling a G92,you must return to a known position in the machine coordinate system, and then rename the axis back to what they 'should be'.

    The danger of the G92 is that it is an immediate transposition of the coordinate system, and cannot be undone, and if a mid program restart is attempted with the machine out of position, and the control reads the G92 again, it will royally screw your tool positions from that point forth, because the G92 is applied always to the current position of the machine.

    In lathe, you can and should return to home always, if you call a new G92 for each tool. Never restart the program from the current position after an abort. Staying with workshifts is the recommended safe way to operate nowadays. However, if you have to run an older control that has no workshift capability, then the above mentioned methods should keep you fairly safe.

    First you get good, then you get fast. Then grouchiness sets in.

    (Note: The opinions expressed in this post are my own and are not necessarily those of CNCzone and its management)


  3. #3
    Long and short of it is as follows: I'll use Fanuc as a reference here.
    G54 - G59 are "work coordinates", commonly the values are taken from machine home or machine coordinate (G52) and used to refererence a part zero or shifts for subs or whole programs. In the case of a lathe, your "X" is commonly spindle center. "Z" anywhere.
    G92 is an "incremental" shift in work coordinate, in that it will describe a new point of departure. For instance, you have G54 active and want to move your stock out from the spindle an nose extra 3" to try something like 3 parts in a row before stock feed without losing the initial G54 value.
    Physically Go to "Z" +3.0" farter from the spindle with your "zero tool" and MDI or in the body of the program, call G92 Z0.0 -Done-
    "Beware" if you call (machine reads)G54 - G59,G52,G53 etc. it will revert to that WCO so make sure there is only one work corodinate offset called before G92 is used and none after it. Get the drift?
    Crash city if you make mistakes.



  4. #4
    Registered
    Join Date
    Jul 2007
    Location
    USA
    Posts
    195
    Downloads
    0
    Uploads
    0
    I never use G92.
    G54 thru G59 are what I call fixture offsets, like if you have 3 or four vises on the table and want to jump around for different jobs. When the control sees a M30 at the end of the program it rewinds the program and resets all the default settings. Most of the time this resets the fixture offset to G54. So what I do is put the fixture offset (G54-G59) at the top of every tool path.
    Then if I want to do a restart at a certain tool in the middle of the program I know the proper fixture offset is being used.

    Be carefull what you wish for, you might get it.


  5. #5
    Registered jorgehrr's Avatar
    Join Date
    May 2006
    Location
    USA
    Posts
    210
    Downloads
    0
    Uploads
    0

    Smile

    Well....I wish I could say that I got it... but I think I will understand better when I do my first set up.

    The fact that G92 does not need to be used like JROM mentions, confuse even more. It has to be an advantage or disadvantage when this code is in use and I hope I can figure out tomorrow when I run my program. ( just a couple of holes and a tap to start)

    Thank you all for sharing your time.


    Jorge



  6. #6
    Registered cnc-king's Avatar
    Join Date
    Jul 2003
    Location
    united states
    Posts
    263
    Downloads
    0
    Uploads
    0
    Quote Originally Posted by JROM View Post
    I never use G92.
    G54 thru G59 are what I call fixture offsets, like if you have 3 or four vises on the table and want to jump around for different jobs. When the control sees a M30 at the end of the program it rewinds the program and resets all the default settings. Most of the time this resets the fixture offset to G54. So what I do is put the fixture offset (G54-G59) at the top of every tool path.
    Then if I want to do a restart at a certain tool in the middle of the program I know the proper fixture offset is being used.
    i have to agree with you G92 is bad news because it resets the machine position and 90% of the time a program reset and rewind will not reset it. I always use G10 to set my work offsets

    If you can ENVISION it I can make it


  7. #7
    Registered jorgehrr's Avatar
    Join Date
    May 2006
    Location
    USA
    Posts
    210
    Downloads
    0
    Uploads
    0

    Thumbs up

    Thank you all for taking some of your time and share your knowledge.
    I really appreciated it.

    I'm getting there... If it wasn't for the operator that push the "clear" key and wipe out all my offsets.

    Is going to be fun setting all the stuff back. I guess is a good learning curve.

    Thanks again

    Jorge



  8. #8
    Registered
    Join Date
    Feb 2010
    Location
    US
    Posts
    59
    Downloads
    0
    Uploads
    0
    Would someone explain further on this old thread, how I go about using g92 instead of g54-9, since my old machine doesn't use the latter codes? I'm going thru the manual but it just isn't sinking in. Thanks, Loren.



  9. #9
    Registered BlueChip's Avatar
    Join Date
    Jun 2003
    Location
    Massachusetts
    Posts
    168
    Downloads
    0
    Uploads
    0

    G92 - Explained (maybe)

    Well ... think of it this way.

    The G92 command writes directly to the machines position display. Whatever is in the G92 bloxk for X/Y/Z ... that's where the machine thinks it is.

    For example ... take this ( fanuc ) code as a reference :

    G00G91G28X0Y0 ... send X and Y to zero return or home position
    G00G91X-1.00Y-2.00 ... make an INC move from there -1.00 in X and -2.00 in Y
    G92X0Y0 ... this sets the machines ABS position to X0 Y0 ... the machine now considers this position absolute X0 Y0.
    G00G90X-10.00Y-15.00 ... move to ABS position X-10. Y-15.0

    At this point ... the tool would be -11.0 in X from zero return and -17.0 in Y
    It would be -10.0 in X and -15.0 in Y from the point where it read the G92 line.

    G92X0Y0 ... this would now set this current position to X0Y0

    So you see you can move the ABS zero position around using the G92 command.
    The drawback is it can get confusing following it and moving it.

    With G54 thru G59 ... the distance from zero return or home to the desired X0Y0 locations can be stored in the G54-G59 offsets. When you make a command in the program like :
    G00G90G54X1.00Y1.00
    ... the machine looks in the G54 offset to find the distance from zero return to the ABS part zero ... and then moves to the commanded XY coordinate using that value.

    It is very easy to command G54X1.00Y1.00 or G55X1.00Y1.00 ... the values are all stored in the offsets.

    Hope this helps a little down the road.

    Real World Machine Shop Software at Kentech Inc. - Real World Machine Shop and CNC Software
    Conversational software for $0.34 a day !!! ... with our new Subscription Purchase option !!



  10. #10
    Good explaination by BlueChip, I'll offer my own insight.
    Like he said, G92 updates the absolute position register. I've used it two ways:
    1. Program stop, manual move to program zero, press cycle start, next block is G92 X0 Y0 Z0 B0. This is risky but good for one-off parts.
    2. Home machine. Find program origin by jogging machine. Record absolute position with no TLO active. Subtract TLO of tool in spindle from Z. Put these values in the G92 block. Your program MUST call G92 from home position.



  11. #11
    Registered
    Join Date
    Feb 2010
    Location
    US
    Posts
    59
    Downloads
    0
    Uploads
    0
    Quote Originally Posted by BlueChip View Post
    Well ... think of it this way.

    The G92 command writes directly to the machines position display. Whatever is in the G92 bloxk for X/Y/Z ... that's where the machine thinks it is.

    For example ... take this ( fanuc ) code as a reference :

    G00G91G28X0Y0 ... send X and Y to zero return or home position
    G00G91X-1.00Y-2.00 ... make an INC move from there -1.00 in X and -2.00 in Y
    G92X0Y0 ... this sets the machines ABS position to X0 Y0 ... the machine now considers this position absolute X0 Y0.
    G00G90X-10.00Y-15.00 ... move to ABS position X-10. Y-15.0

    At this point ... the tool would be -11.0 in X from zero return and -17.0 in Y
    It would be -10.0 in X and -15.0 in Y from the point where it read the G92 line.

    G92X0Y0 ... this would now set this current position to X0Y0

    So you see you can move the ABS zero position around using the G92 command.
    The drawback is it can get confusing following it and moving it.

    With G54 thru G59 ... the distance from zero return or home to the desired X0Y0 locations can be stored in the G54-G59 offsets. When you make a command in the program like :
    G00G90G54X1.00Y1.00
    ... the machine looks in the G54 offset to find the distance from zero return to the ABS part zero ... and then moves to the commanded XY coordinate using that value.

    It is very easy to command G54X1.00Y1.00 or G55X1.00Y1.00 ... the values are all stored in the offsets.

    Hope this helps a little down the road.

    Real World Machine Shop Software at Kentech Inc. - Real World Machine Shop and CNC Software
    Conversational software for $0.34 a day !!! ... with our new Subscription Purchase option !!
    With the last couple days time spent with hands on the machine this makes a lot of sense now. But I don't have a g54, instead it looks to use g45 X... D98, and respective D99. See this:


    The above is a sample program from a different version manual that Methods sent me in request for mine. Think it's a MX1 control manual instead of my for 3000G control. So far everything I've found in it works as mine.

    This is the instructions on G92 in the manual for 3000G:


    Of course setting Z is the only issue I'm still having with running my first program. Everything else ran to M30. yay.



  12. #12
    Registered BlueChip's Avatar
    Join Date
    Jun 2003
    Location
    Massachusetts
    Posts
    168
    Downloads
    0
    Uploads
    0

    No Work Offsets

    If my recollection is correct ... the 3000G does not have G54-G59 ... too old.

    Your best choice is G92 for X and Y ... IMHO.

    The G45 is really a short cut to enable the machine to auto-move to the part zero ... using the offsets. This makes it easier to adjust the part zero position ( like G54-G59 ) by just changing the offset values.

    To set the G45 :

    (0) Usually you pick an offset number you won't be using ... the 98 and 99 are a good choice because they are the last two available. You know that these two are always reserved for "fixture offsets".
    (1) Send the X and Y axis to zero return.
    (2) Use an edge finder or whatever and find the X0/Y0 location you want to use on the part.
    (3) Record the distances in X and Y to that point from zero return.
    (4) Those distances is the distance you put in the offset ... let's say you use offset #98 for X and offset #99 for Y.
    (5) Now when you activate them using the example G45 in your manual ... the "position" of the machine reflects those offset values.

    If I remember correctly :
    (1) You need to do this using an incremental (G91) move from zero return in the program. So you always need to activate it using :
    G00G91G28X0Y0 ... send the X and Y to zero return
    G45 X0 D98 ... physically moves X to the zero position in X
    G45 Y0 D99 ... physically moves Y to the zero position in Y
    G92 X0 Y0 Z0 ... this sets the X0Y0 position using the G92.

    ... I think ... I might be wrong here ... but I think that's how it works. If you try the above lines, you should see the physical move to the X0 then the Y0 when you run the program.

    But you can use the G43 command for the "height offset" which is the way you control the Z axis.

    A brief explanation on how to set the offset :

    (1) Send the Z axis to zero return.
    (2) Physically Put the desired tool in the spindle ... let's say it's tool #2
    (3) Physically tough the tip of that tool to the part Z0 location ... and record the distance from the tip of the tool at zero return to where it is when the tool touches Z0.
    (4) That distance is the distance you put in the offset ... let's say offset #2.

    In the program ... to send that tool to Z+1.00 ( 1.00 above Z0 ) you can command the line : G00G90G43Z1.00H02

    .... the control looks in offset #2 because of the G43 command ... now knows the distance from zero return to Z0 ... and will stay away the commanded 1.00.

    So you can go along on your merry way machining :
    G01Z-1.00
    G00Z.100
    ... whatever.

    Once that offset is commanded ... it always knows that distance until you command it to go back to zero return ( G00G91G28Z0 ) or command G49 ( height offset cancel ).

    Hope this helps ... a little.

    Real World Machine Shop Software at Kentech Inc. - Real World Machine Shop and CNC Software



Page 1 of 2 12 LastLast

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  


About CNCzone.com

    We are the largest and most active discussion forum from DIY CNC Machines to the Cad/Cam software to run them. The site is 100% free to join and use, so join today!

Follow us on

Facebook Dribbble RSS Feed