Saturday, April 11, 2015

Preempting a common "C" axis error

CNC engineering


CVTL’s (C depicting live tooling) have been around awhile and they are increasingly becoming more popular mainly due to the fact that that they diminish the need for a new mill operation set up. Operators on these machines need to have added abilities and training to handle both mill and lathe operations on a single machine. Always, with added complexity comes the opportunity for error for instance; proper alignment of the “C” axis when the lathe operation is complete. Usually a bolt circle is next. Profiles in the part need to be set according to “C” zero in relationship to print dimensions and angles.
Normally, these multi axis machine tools have either the odd ATC turret numbers set aside for turning tools and the even numbers for milling tools. Due to the fact that the milling cutters are set up from the center of the chuck all “X” axis offsets in the machine are set to zero instead of the standard way of setting turning tools. Twice the distance from the center of the ram input to geometry offset settings.
Imagine, what would happen if accidentally a turning tool offset was inputted into milling pot offset and not caught before the cycle began? It has happened, probably more times than any of us want to think about but if good machining practices are followed and test cuts are made this should be an obvious error and the cycle stopped in plenty of time before a catastrophe happens. True, I agree but not all operators are as aware as they should be, some may just not know or it just may not be obvious due to the part geometry or an optical illusion of some sort.
OK. So, it happened on my watch. A NCR for a pocket that was milled 12.745 off center. You can’t watch everybody but I’m responsible for everything and everybody during my shift. So, it came time for a root cause analysis and  a foolproof corrective action. Human error is a difficult action to curtail. There are so many options and variables that an operator do.
The root cause is simple. Operator input error and most likely from lack of attention.
To preempt this error we must simplify it to just this error and tackle other operator type human errors as they arise. There is a simple way to get the machine to make all “X” axis geometry offsets zero when a milling operation is called using the spindle on code as a tag for the post processor to call a custom M code.
In a previous post I described how to write a custom M code that calls a custom macro M225. You can use any number you wish as long as the machine tool builder has not already used that number. Edit your post processor to output M225 after it encounters M33 and not M03 when the machine is in turning mode, as it is not necessary.
For your 9000 level macro use your FANUC manual for that control to find the address of the proper parameters to change. These numbers will be different based on your control type, the memory system option that was purchased with the machine, possibly the machine tool builder and the offset system you have set up. It is of utmost importance that you read carefully your operators manual specific for your machine and replace the names I used in the sample program with the proper ones for your controls. I have used the system variable name approach, which you may not have as an option in which case you would use the actual variable number. Be careful, depending on the number of available axis the parameter values for the “X” axis offset may be a multiple of 3 or 4 or even more. They will not be in order i.e. #2001, #2002 etc…To double check you have selected the correct parameter write down the value that resides in that address and then go to MDI and type in a single line of the parameter address followed by a common variable. Then go to the common variable page and check that values are equal after execution.
#2001 = #539: <cycle start>
Now, navigate to the common variable screen (usually under the macro soft-key) and verify that the correct value was copied.    
The program:
O9020; (CLEAR MILL OFFSETS)
(ASSUMING EVEN MILL TOOLS)
(MEMORY SYSTEM B AND PARAMETER V15 DOES NOT = 1)
[#_OFSXG[2]] = 0;
[#_OFSXG[4]] = 0;
[#_OFSXG[6]] = 0;           
[#_OFSXG[8]] = 0;
[#_OFSXG[10]] = 0;
… (CONTINUE UNTIL ALL MILL POTS ARE RESET)
M99;
Now you may edit your post processor to output this M code when milling mode is engaged.
The previous article is meant to be a learning tool and not meant to be employed directly. If you do not have experience with custom macros on your particular type of machine, I would not recommend you attempt. The code is simplified and system checks need to be added. Please use caution anytime you change parameters and take a backup regularly. You may contact me through Google for proper implementation. If you are seriously interested in any type of custom macro or machine modification  this can be done quickly for a fee. Thanks for letting me share and remember it’s just an informative document.

No comments:

Post a Comment