![]() | |
| 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
| |||
| |||
Hi, I just started a new job today programming trning style lathes and they use incremental mode on fanuc controls. We only used absolute at my old job and I understand the difference but I just can't grasp the benefits of using incremental over absolute and/or vice versa. My boss said its so they can easily edit the program to change just one move without having to change the whole program. Wouldn't absolute be better for that? If anyone can help with the pros and cons or whatever it would be appreciated. thanks |
|
#2
| |||
| |||
There are lots of good uses for incremental programming, and you should keep an open mind about these things. In the olden days, all motions were incremental because the primitive NC "tape" machines would just read an incremental XYZ command from the paper tape, load the number in a register, and count up or down the number of pulses to make the move (probably with pulse motors). When microprocessors and mini-computers were introduced in what we now call "CNC" machines, the controls could keep track of the absolute position of each axis with no problem. Absolute or incremental moves could be made at any time. I've seen incremental motions used in all kinds of situations, but here's one that few people know about: It involves using G91 (incremental) combined with the old method of uing non-decimal formatted numbers. Suppose you're cutting a 3D mold with a ballnose endmill, and you're making a zillion little tiny moves in XYZ. The size of the program becomes a problem because these programs need to be fed to the CNC in "drip-feed" DNC mode. If you're running a DNC link at 9600 baud (960 characters/second), which program do you think will run faster: This one (absolute) ? G90 G01 X1.2345 Y2.3456 Z3.4567 X1.2347 Y2.3459 Z3.4571 X1.2350 Y2.3462 Z3.4577 X1.2355 Y2.3469 Z3.4579 .. or this one (incremental) ? G91 G01 X2Y3Z4 X3Y3Z6 X5Y3Z2 A lot smaller, isn't it? |
|
#3
| |||
| |||
| We often use incremental programming to cut the same shape in 2 or more locations.The main program is used to locate with absolute and then we call-up the sub-program which incrementally cuts the shape. Dan, Good idea-does this actually reduce the jerkiness you get when the machine can't process the code fast enough? One problem with this though is that if there's a move that's bad then everything after it in that axis will be bad also. |
|
#4
| |||
| |||
arfonce: No, this won't necessarilly stop the jerkiness that happens when you're trying to cut very small increments at a higher feedrate. Every CNC has a maximum number of blocks that it can process per second. This internal block processing speed is not improved by reducing the number of characters in the program. It will, however, greatly improve things if the problem is due to "Data starvation" due to a slow DNC link. Other things that might improve things are: 1) Programming in metric if your machine has metric ballscrews. The CNC has to do an inch/metric conversion on every number your program in inch with metric ballscrews or in metric on a machine with inch ballscrews. Programming in the machine's "native" increments system saves the processor this time. 2) Increasing the parameter for the "In position" zone for each axis. When you make a G01 move, the servos must get to within this tollerance of the exact position before it can execute the next block. Increasing this parameter lets the CNC go to the next block a bit quicker. 3) Using software that generates a series of G02/G03 moves with arcs that fit your 3D surface (rather than many G01 straight moves). This reduces the number of BLOCKS in the program, which increases the point-to-point distance. A series of arcs can sometimes cut a more accurate surface, but your CAM system needs to have the feature. |
|
#5
| ||||
| ||||
| I think the reason "G91" was introduced, was, so that you can program the CNC while working from a print. It is far easier to program from point to point using "G91", than to write a program from an axis zero (Home) point. Most times when I write programs I use both "G90" & "G91", I use "G90" when I want to send all my axis home, and for Rapid Feed (Around the Part). My favorite thing about using both "G90" & "G91", Is to combine a bunch of sub-programs, into my main program. My subs mostly use "G91", while my main will use "G90" to give me a starting point to use my "G91". (I hope that didn't sound like a tax form!) Example: % ; Start program G90 ; Absolute G00 X0.0 Y0.0 Z0.0 F50 ; Send all axis home Sub_Program_1 G90 ; Absolute G00 X0.0 Y0.0 Z0.0 F50 ; Send all axis home Sub_Program_2 G90 ; Absolute G00 X0.0 Y0.0 Z0.0 F50 ; Send all axis home Sub_Program_3 G90 ; Absolute G00 X0.0 Y0.0 Z0.0 F50 ; Send all axis home M30 ; End of program Really you should learn to use both, combined together they can make things easier on you. . |
| Sponsored Links |
|
#6
| |||
| |||
|
|
#7
| ||||
| ||||
| Actually, I run a Schutte 5-axis cnc toolgrinder, It would be closer to a lathe, than a VMC. I have to disagree, that "G91" is more difficult to edit than "G90". Whats so difficult with either one?
They are both their to be used, mix them up! ------------------------------------------------------------------
------------------------------------------------------------------ . Last edited by Switcher; 01-26-2006 at 12:35 PM. |
|
#8
| |||
| |||
| Maybe using the word "difficult" was a mistake. Editing in either incremental or absolute is easy but often in incremental you have to make changes as it were downstream; for instance if you make a positive change in the first of two diameters along a shaft but don't want to change the second you have to do a negative change for that one. I was trying to think of an example where a single change in incremental did not require any other changes in the program. Regarding the example and question: This one (absolute) ? G90 G01 X1.2345 Y2.3456 Z3.4567 X1.2347 Y2.3459 Z3.4571 X1.2350 Y2.3462 Z3.4577 X1.2355 Y2.3469 Z3.4579 .. or this one (incremental) ? G91 G01 X2Y3Z4 X3Y3Z6 X5Y3Z2 I'm not sure I follow this, If I need to move "X1.2345", how would "X2" be the same, rounding the numbers wouldn't benifit you If you still needed to move "X1.2345". The X2 in the incremental is the difference between X1.2345 and X1.2347; notice the absence of the decimal and remember that absolute means 'move to these coordinates' while incremental means 'move this distance from where you are'. |
|
#10
| |||
| |||
This sort of thing dates back to the days of paper tapes and (almost) no memory. |
| Sponsored Links |
|
#11
| ||||
| ||||
| Geof, I run "Siemens 840D" on a tool grinder. I've never found anything like that before. Yeah, If I said "X20000" in a program I wrote at work, two things could happen: (1) I would crash. ![]() (2) I would max out my software limit switch. I would prefer (2), if it had to happen. Thanks for the info. ![]() . |
![]() |
| Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
| Thread Tools | Search this Thread |
| Display Modes | |
| |