![]() | |
| Home Page | Mark Forums Read | Today's Posts | My Replies | Classifieds | Reviews | Photo Gallery | Web Links | Share Files | Advertise With Us | Ad List |
| |||||||
| G-Code Programing Discuss G-code programing and problems here! |
| This forum is sponsored by: |
![]() |
| | LinkBack | Thread Tools | Search this Thread | Display Modes |
|
#1
| |||
| |||
I do the maintenance on the CNC equip in this shop, which is all old GE 1050's & Fanuc 6Ms. I've been doing this for only 2-1/2 years, and any G-code knowledge is what I have picked up here. I have noticed that this shop NEVER uses G54 work offsets, but does everything with G92. Is this a common shop practice for the industry? Just curious, as the G54 seems to (inexperienced) me to be a better way to go. Cheers, Steve |
|
#2
| |||
| |||
| I have never run one but think on some old machines you have to use G92 because they do not have the ability to store coordinates for a fixed work zero like G54. In the early days of NC and CNC, memory was in short supply so many tricks were used to reduce the amount needed for a program. Even when it is not needed some people probably still use G92 because that is what they are used to.
__________________ An open mind is a virtue...so long as all the common sense has not leaked out. |
|
#3
| ||||
| ||||
| I think if safeguards are in place, then G92 is useful, but skip one of those safeguards, and CRASH!. I like G54 thru G59 + G54.1 because its easier to keep track of fixture locations. Fewer safeguards needed for these, but still, anyone can skip something, and CRASH again. Older machines sometimes don't have G54 available, and G92/G50 is the only way to go. If a program works for an old machine, it's less work to use G92 on the newer machines with G54 available. (establish a standard way of working that accommodates all machines in the shop.) |
|
#4
| ||||
| ||||
| The G92 is where the actual datum zero co-ordinates are read and set by the running program The G54 is where the program reads the datum zero co-ordinate fron an offsets page in the machine which is seperate from the running program Both have their uses -- G92 is probably the safest for a production type machine as a "locked" program cannot be fiddled with, no acesss to any setting areas for an operator -- G54 is great for a jobbing shop, some fixtures can be thrown onto a table, clocked up true, set the datum, load da program, set da tools, and pusha da button ( in an ideal world ) |
|
#5
| ||||
| ||||
I agree with Superman that it is a nice safety to lock up the G92 in the program and I have used the older machines that do not have the work offsets the thing I like about the work offsets over G92 is with G92 you must be at home before it is read and if you have more than one location you must go back home to set the next G92 or move to the new Zero and reset it which can make it hard to rerun parts of a program if you break a tool or insert with the work offsets you can change them on the fly and not be at home for me I like the work offsets |
| Sponsored Links |
|
#6
| |||
| |||
| Seeing as I am having problems with my CNC I thought I would post here rather than post a new one as it seems you guys know what your talking about. I just purchased (1st mistake) an older CNC with a Fanuc O-MC controller and it doesn't have G54-G59 capabilities. I am not used to programing with G92. How do you typically set up a program with G92? I don't understand where the X,Y,Z, settings that run in the line of the G92 come from. Are they from (Absolute)position or are they from the (Machine) position? Sorry for my ignorance but once you get used to G54-G59 you forget everything they teach you in school. And also when you program do you need to run evrything with G90(Abs) or G91(Inc)? Thanks! |
|
#7
| ||||
| ||||
| On an older control with no work offsets, G92 is the way to control the machine coordinate system. By 'machine coordinate system', I would refer to G53 on a modern controller, but on the ancient ones, when you power up the control, the axis displays come on and are typically set to zero when the machine is homed. Since this is your one and only axis display, it is essentially the machine coordinate system, but may not be addressable with a G53 word, nor can you command a move using G00 G53. So essentially, the home position is the master reference for the machine. If you now jog over to a particular point, let's say X1. Y1. from where home was and want to define this as X0Y0 for your part, you can, at this position, command G92 X0Y0. or, if you wish to move back to the machine home position, you can now define that position because you know where the part datum is. So you could command G92 X-1.0 Y-1.0 at machine home. If you stop and think about this, both of those commands will define your work zero at the same location in space. What matters, is where is your machine at the moment that G92 X Y Z is commanded. This is critically important because G92 is an instantaneous renaming of the machine coordinate system (in an old cnc), and you cannot cancel it except by undoing the G92 command with a command of opposite values, or, return it to home and redefine the coordinate system that as G92X0Y0Z0. So it is very important to know where the machine is going to be when a G92 command is read. There are a couple of ways to 'be careful': Always precede a G92 command with a G28 to get the machine back to machine zero. Then permit the control to reread the G92, if it is written in the program. This is critical to remember if you abort the program prematurely, because you will get in a real messy crash if some miscellaneous position gets reassigned as the work datum. Another way to do this, is to do your setup, and edge finding to find how far from home the work datum must be. Then return to machine home, and define that position with G92 as explained above, but do this in MDI mode. Now, you should be able to run your main program without any G92 commands within it. This will help prevent those messy crashes caused by an inattentive/inexperienced operator. The drawback, is that the work datum will be lost if you power the control off. So you'd have to write down what the G92 values should be, then next time the machine is powered up to continue running yesterday's program, you must key in the G92 value in MDI before you switch to automatic operation. I learned all this crap the hard way, running an old Bandit which had only one coordinate system, and the above method was the way I ran it. I do not know if these principles would apply to all other older cncs out there, but you can certainly do a few tests to figure out how it behaves. In the Bandit, we did not have G28, but we had G98, which is an obsolete gcode now. But what G98 did, was return the machine to the position where G92 was defined, whatever the values happened to be. This gave us the option of having the machine return either to the work zero (if that was where we defined G92X0Y0), or, we could move elsewhere if a toolchanger was in use, and required more vertical space to do the change. On a knee mill, this was important, as we were very much short of space above the workpiece for toolchanging. So usually, we'd define the G92 at machine home, therefore using appropriate values that depicted how far the work datum was from machine home.
__________________ 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) |
|
#8
| ||||
| ||||
| I used to use G92 on old WS universal lathes. The simplest way I found for operators not to crash is to make a program (O0000) to home out and go to the start of the current program's G92 home position. Almost idiot proof if you have the current program number written down and hanging on the control. |
|
#10
| |||
| |||
| Thanks guys, This really helped. I understand now how it works. Fortunately, for this aspect anyway, my machine does not have a tool changer and therefore returns to home every time a tool change comes up and it also must be at Z home to change the tool. So from what I think your saying with regards to where the machine will be when the G92 is called up, as long as it is in the home position upon calling up the G92 line, I should have no problems?? Also, I have heard of people setting their tools up on a surface plate rather than in the machine on a datum...do you know what the best set-up is to do this? Thanks again...I really appreciate it! Best regards, Keith Barrie, Ontario |
| Sponsored Links |
|
#11
| ||||
| ||||
| Yup, home position is a safe place to command G92. RE: tool setup: I don't know how your controller behaves exactly, but some of those older ones would move in rapid when a tool offset was called. So whatever length was stored in the length offset, would immediately be traversed. This could be dangerous and unnerving if you set the tool lengths below the top of the job. Therefore, to use the table top as a reference, use a stack of precision 1-2-3 blocks or 2-4-6 blocks to create an easy to replicate reference at a convenient height above your part Z0. So the tool length offsets become the distance from tool tip at machine home to the top of this reference stack. If you give yourself an inch of clearance between the part Z0 and the top of the reference, you'll be able to call the tool length, it will execute, and still leave you an inch of breathing room Failure to do this results in your tool rapiding immediately to Z0 when the length offset is called, and sometimes, this might be some distance beneath the top of a piece of rough stock. Ouch! Of course, this could be avoided by programming a Z position on the same line as the tool length offset callout. However, this sometimes creates a PITA in setting up your CAM post, because then you've got this Z value hardcoded in with each tool, and it may or may not be sufficient clearance for all situations. So anyway, if you use the reference stack method, you'll end up with an uncertain distance between the reference plane and the top of the part. You deal with this by using a Z call in the G92. For example, if the tools are all set 1" above the part, then with the machine at home, the Z is defined as G92 Z1.0 and if it needs some tweaking, return to home and adjust this value accordingly. This will universally affect all your tools the same, just as using a Z in a G5x work shift does. Why use a reference plane instead of the top of job? This permits you to use existing tool length offsets from a previous program, on a new job, just by adding the new tools and refinding their lengths. Also, if you are machining parts that might vary (like castings or any rough stock), there is a concern that you might have to move the top of job up or down. If you happened to set your tools to the top of the part1, then break a tool on part 10, and have meanwhile been moving the Z0 around, the length offset for the new tool will not be set to the same Z0 as the rest of the tool set. This could easily spoil your job. Ask me how do I know this
__________________ 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) |
|
#12
| |||
| |||
| Thanks, I currently set my tools up the way you mentioned. I thought maybe their was a better way, and maybe I could do a lot of the tool setup while my machine was running. Oh well that what I get for buying junk. I look forward to an upgrade, though I have learned lots going through this...and thats what its all about! I have another question you may be able to help with; I (like many others in this forum) am having problems with drip feed. It seems to work sometimes but not others. When I send a simple program (Rough, Finish, drill) it seems to go through most of the program and then gives me 087 alarm. If I send a 3D profile to it gives me the 087 alarm about ten lines in.?! I have gone through the parameters with a fine tooth come and it hasen't seemed to help. I think its the inconsistancy that is throwing me off. Any ideas?! By the way it says in my manual that 087 means:"When entering data in the memory by using Reader/Puncher interface, though the read terminate command is specified, input is not interrupted after 10 characters".....What the hell is that! Thanks, much appreciated! |
![]() |
| Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
| Thread Tools | Search this Thread |
| Display Modes | |
| |