Many, Many thanks to Dan Fritz for his instructions on manually programming a 5T. The instructions worked perfectly after I realized that INSERT and INPUT are two different keys (Dah!) I get the feeling that programming like this all day would be tons of fun.
The lathe is a 22x40 inch machine. It seems like offsets above 9.9999 inches are not accepted!!!!
Am I doing something stupid? Is this for real?
I began writing a program and setting up the machine the same way I do my Fanuc 0-T/ Tsugami Lathe. I turn scrap pieces, measure the dimensions and enter the difference from from machine zero. This makes the readout show the actual part size (Length and diameter) when the right tool offsets are active. I won't be able to do that with this machine if offsets only hold numbers smaller than 10". My Z-zero is 40 inches away from where the workpiece will be.
How do other people work around these sorts of limitations? I've seen some programs that use G50 axis shifting, but I've never bothered to learn this method. Is this what I have to do?
You really need to use G50 to set a coordinate system on your 5T lathe. There were two schools of thought on G50. One was to use G50 once at the beginning of the program to set the X-Z zero for the first tool. Then, you would use tool offsets to compensate for the differences in the tool lengths. The same offsets are used for wear compensation.
Another method is to use a separate G50 statement for each tool. Your G50 statement sets a new zero point for each tool, so that (theoretically) moving each tool to X0Z0 would take all the tools to the exact same point. Then, the tool offsets are used for wear compensation only, and their values would be small.
Fanuc and Mori Seiki programming schools back in the 70's taught customers to use a separate G50 statement for each tool. A similar command on a 5M mill is G92, which works like G50 on a lathe.
The G50 statement can do two things. It can set the coordinate system for X and X, and it can also be used to set a maximum spindle speed for constant surface speed (using a letter "S" with G50). If you use CSS, then as the x axis approaches zero, the spindle will wind up to this maximum RPM and no higher. You may have chuck jaws or a bar feeder that can't take the machines max RPM, so setting this limit is sometimes a safety issue. You only need one G50S--- command at the beginning of the program.
I would always start out a program with a couple of blocks to take the machine home (G28U0W0), then move out to a safe "tool index" position with an incremental move (G00U---W---). That should put my first tool at a known position relative to the workpiece. X0 is, of course, always set to spindle centerline, and I would use the chuck face as a Z0, making all my Z dimensions in the program positive (but you can set Z0 to anywhere you like)
I would then put a block delete character ahead of these first few moves, so that the machine could be restarted from a power off condition easily. I would just power up the machine, turn off the Block Delete switch, start the program, and the machine automatically zeros out, selects the first tool, then moves to the safe start point, calls a G50 for the first tool, then starts cutting. After the first part, I would turn off Block Delete and the machine starts each part cycle from the tool change position rather than homing out each time.
G50 does not move the X or Z servos. All it does is say: "this is your current position". The T-command to select a tool and activate an offset DOES move the X and Z servos, so just changing tools with a T-command like "T0202" indexes the turrret and also MOVES the X and Z axes by the amount of the tool offset "02". That's why I like to use G50 for each tool, and not be faced with large unexpected offset moves when I change tools.
Remember that when you're changing to tool #1, use "T0101" to pick up the offset 01. When you're finished with that tool move it back to the safe tool change position and cancel the offset with "T0100". Then, give it a G50X---Z--- to set the position of tool #2, then change tools and pick up the new offset with a "T0202". Also remember to cancel out the last tool offset when your program is finished, before the M30. Some Fanuc 5s don't cancel the offsets with M30 or M02 (I believe that's a parameter setting), so you should always do it in the program.
If I enter 99999 and press [INPUT] the X offset says 099999
But... If I enter 123456 and press [INPUT] the X offset says 023456 !!! anything put in the 10 inches digit is zeroed out when the [INPUT] key is pressed.
What a PITA.
Since I've already made one dumb post today, I'll go for two...
Is it a decimal problem?
99999.000 and press [INPUT] the X offset says ?
123456.000 and press [INPUT] the X offset says ?
I know... quit posting jamesweed
I guess you've never programmed a 5T....? The b*tch is old, it doesn't have a decimal point key, use or display them.
It was from a time when it was considered crazy to 'waste' and entire byte of data on something so cosmetic as decimal points.
One enters 15.375 as 153750, that's how its displayed on the readout as well. Everyone just has to know there is a decimal point between the 4th and 5th digit from the right.
With all the leading zero's shown too (extra logic to blank them) this is a real user friendly interface.
Yhea! 2 for 2!
Boy John that is one user friendly control you got there. And I thought my Allen-Bradley 9 Series were showing their age.
We sell a lot of BTR interfaces for the 5T and 5M (also the older 2000C and 3000C). You're right that those old controls have limited memory, and can not use decimals.
The BTR hookup lets you connect a PCs parallel printer port directly to the Fanuc's tape reader input. The control thinks it's reading a paper tape, but it's really getting data from the PC. Our software then lets you edit a G-code file on the PC WITH decimals, and we format the number automatically when it's sent to the CNC. The Fanuc still gets data without decimals, but your program can be compatible with newer Fanuc models that use decimals. You can also call files like subroutines and do a lot of fancy G-code editing on the PC. There's no need to use the Fanuc memory anymore, because you'll always be running from the PC in TAPE mode.
It's worth considering if you have a 5T or 5M and you intend to keep the machine for a while. It also adds the ability to save your files on a network, connect it to a wireless network, edit files while you're cutting metal, archive your files, etc. etc.
Tell me more about your Parallel port BTR. NOW!!!!
As per your post earlier:
"You really need to use G50 to set a coordinate system on your 5T lathe. There were two schools of thought on G50. One was to use G50 once at the beginning of the program to set the X-Z zero for the first tool. Then, you would use tool offsets to compensate for the differences in the tool lengths. The same offsets are used for wear compensation........"
Is there a command to cancel or remove the G50 setting so I can be sure of being back to machine coordinates?
Your suggestion to put a tool offset cancel after using a tool such as T0100, doesn't this cause wasted motion of what ever the offsets are? If I'm done using a tool, why would I want to move to remove its offsets, I think I'd rather just move to the offsets for the next new tool?
The Fanuc BTR (Behind the Tape Reader) connection is something we've offered since 1984 or so. Currently, we sell two products called "PC-DNC Editor" (our basic G-code editor), and the "MultiPort PC-DNC Editor" (the BTR version). The two programs share the same editing features, but the MultiPort version has more DNC functions. You can download a free demo copy of the basic PC-DNC Editor from our website at www.sub-soft.com if you'd like to play with it. The BTR version can be purchased by phone and we'll ship it to you along with the cable.
The BTR function requires a special cable that we make here in our shop. It has a 25-pin male connector on the PC side, and a 50-pin ribbon connector on the CNC side. The cable is about 15 feet long. To connect it, you put a Windows 95/98/NT/2000 or XP based computer near the CNC cabinet and connect the cable to your PC's parallel printer (LPT1) port. The other end of the cable goes inside the CNC to connect to the Fanuc 5Ts "A" board. You unplug the ribbon cable that goes to the tape reader and plug our cable in its place. That's all there is to it. The basic PC-DNC Editor handles serial (RS232) communications, but the MultiPort version handles serial along with parallel BTR, RS422, and FTP data server functions as well. The software is network compatible, so you can connect that PC to your shop network via Ethernet or wireless Ethernet.
We sell the MultiPort Editor as a kit (cable and software) and it costs $1195. The basic PC-DNC Editor is $595. We also offer significant discounts for multiple copy purchases, so you only pay list price for the first copy you buy.
The same products are sold by our West coast distributor, Refresh Your Memory, Inc. (www.rym.com). RYM can be found at all the major machine tool shows (SME and IMTS), and I'm usually in the booth with them, writing more code.
On the PC-DNC Editor, you just open a G-code program, click the "BTR/Send file" menu, and a separate little "DNC box" appears on the screen with your program in it. You then put the Fanuc into TAPE mode and press CYCLE START. As the machine runs, the cursur on the PC moves to show you what block is being fed into the Fanuc's 1-block buffer. If you stop the machine, you can scan or search to any start point in the file and resume the cycle from there. There is a function to automatically format the numbers (mentioned earlier) and a "CALL" function that lets you call files like subroutines. It's similar to the Fanuc "M98Pxxxx" statement, only you say "CALL (file name)" in your program. You can nest subroutines 7 layers deep.
The same MultiPort Editor BTR connection works with Yasnac 2000B and 2000G control also. It just requires a different cable. The Fanuc models that can use the BTR connection are: 200C, 2000C, 3000C, 5T, 5M, 6T, 6M, 7M, 9M, 11T and 11M. Even older models like the 20C and 200A/B controls can use the BTR function, but they need a REALLY special cable.
On your tool offset question, I suppose there's no reason why you HAVE TO cancel the offset each time, but if you use a G50 for each tool, these wasted motions would be very small anyway. I'm pretty sure that the old offset would be cancelled automatically whenever you select the next tool's offset. I have seen, however, some situations where offsets get added together by mistake, so I always just cancelled mine when I was done with the tool out of habit. Another reason is that I would sometimes want to repeat a single tool operation in the program. If I was certain that the old tool offset was cancelled, I could start from the middle of the program and not worry that an old offset is still effective.
If you decide to use just one G50 command at the start of your program, then some of your tool offsets will be quite large, so the wasted motion issue becomes more important. In that case, just give it a new T-code with a new offset and it should move the difference between the two offsets. If you then decide to manually index the tool and run a single tool operation, be sure to RESET the control so no unexpected offsets are in there.
I don't like the idea of using the G50 for "Registering" tool lengths and offsets in programs. That seems to require having the machine setup before the program is written. I much rather prefer writing the programs and then doing the setups. Even my old (1979) Hurco KM-1 allows me to do that.
Here's my idea on how to have it my way with this old beast:
I'll treat the X and Z axii different. For Z axes I'll use the machine's [ORIGIN] button to set the first tool Z length to zero where ever I touch it off. Then I'll use the 10 inches of Z offset available for each tool, to zero Z for each tool.
I can't do this with X because with only 10" of diameter offset, I can't compensate for the huge X travel this machine has and needs to use both its front and rear turrets.
For X, I'll use G50 with a single value to "move" to the front turret position (+19.0000") and the negative of that (-19.0000) for the rear turret. That way I can write all programs before I set them up and have the operator use the offsets to setup and fine tune the machine like we do all of our others.
My questions are:
1. Will this work?
2. Am I crazy for doing it this way?
3. Can I use G50 for only the X axis and never use it for Z?
4. Is there a better way to do this, short of deep-sixing the 5T?
As always TIA,