In order for the cutting tool to move to the correct coordinates, the program zero point (program origin) must be properly instated. This, of course, is done with fixture offsets. In many programs, but one program zero point must be assigned – and it is commonly instated with fixture offset number one. A G54 in the program will be used to instate it.
In this case – one program zero point – there will be virtually no chance that the incorrect fixture offset will be instated. Again, most programmers will include a G54 at the beginning of each tool, ensuring that the machine will know the location of program zero.
But when multiple program zero points will be assigned, the programmer must be more concerned. This is especially true with horizontal machining centers (every side of the table will have a different program zero point) when sub-programming techniques are used to repeat motion commands. If a setup person or operator restarts the program at the wrong command, and if the program zero point is not correct, the results could be disastrous.
With custom macro B, it is possible to determine the currently instated fixture offset. Actually, it is possible to attain the current status of any modal G code – as well as the status of other CNC words. But for the purpose of this discussion, we will limit our presentation to the G codes related to fixture offsets (G54 through G59).
Fanuc categorizes modal G codes into G code groups. It just so happens that group number 14 contain the fixture offset G codes. (Please double check this in your Fanuc programming manual – the G code group number is specified in the table of G codes near the front of the manual.) A series of #4000 system variables give your programs access to the currently instated G coed in a given G code group. To come up with the needed system variable number, simply add 4000 to the G code group number. For the G code group related to fixture offsets, we add 14 to 4000. System variable #4014 contains the current status of fixture offsets (which fixture offset is currently instated.
System variable #4014 can be tested to ensure that the appropriate fixture offset is instated before motion commands are given. For example, when fixture offset number one is in effect (specified by G54, of course), the current value of #4014 will be 54. If you want to test that fixture offset number one is in effect – and generate an alarm if it is not, here are the related custom macro commands:
IF [#4014 EQ 54.0] GOTO 5
#3000 = 100 (WRONG FIXTURE OFFSET)
If the test is true, the machine will skip the alarm generation command. If false, the machine will go into alarm state and the message “MC-100 WRONG FIXTURE OFFSET” will be displayed. This effectively confirms that fixture offset number one is in effect before allowing the machine to continue. Other fixture offsets, of course, could be tested in this manner by applying the appropriate G code number to the test.