Auto Set ZB Variable Limits and Steady Rest Base Clamp/Unclamp
The Initial Problem: The customer has bought 2 Okuma MACTURN 550′s with steady rest options. They have some older 550′s that have had a problem with the “ZB” Axis Covers. It seems that it’s possible to move the B Turret too close to the steady rest, causing the covers to be crushed, or to move the B Turret too far from the steady rest causing the covers to be pulled apart. The Sales Department wants a solution to this, but in order to get the fix from Okuma an RFEQ must be submitted, and so begins a lengthily process of getting a design change from the OEM .
Enter the Application Engineer: The Application Engineer does his best to help the situation. He creates a “G-Code Macro” that allows the Operator to enter information into the macro and it will set the “User Variable Limits” for the “ZB Axis” based on that information. While this works well, It leaves you out in the cold if you need to be setting up the machine in “Manual Mode”.
And So It Begins: I agree to the Quest, start the design work , and start the coding, after about a week, here it comes (no surprise for me any more), that “Out of the Blue” phone call. “While you're at it, Can You…”, in this case they discover that when they use the Okuma software to unclamp the steady rest base, the CAS (Collision Avoidance System) turns off. Oh No!!! Can’t you just add a little something to the application to help us out until Okuma can get it straightened out?
It Shall Be Done: And this is what I managed to throw together in a few days (everybody’s in a hurry).
Basically a simple application.
While in “Manual Mode” the Operator can click on the “Clamp/Unclamp” button to unclamp the base. Now the Operator can move the steady rest to the required position, and then re-clamp the base. He then measures the distance from the chuck face to the steady rest bearing as shown on the interface, after entering that measurement in the text box, he clicks on the “Set Limits” button and “ZB Plus and Minus Limits” are set to the new safe distances.
How I Did It: First: I had to add an Ethernet I/O Device to the machine allowing me to energize and d-energize the “Clamp/Unclamp” solenoid. By taking over this function from the Okuma, I can unclamp the base without causing an issue with CAS. I am also able to allow far safer functionality. With the Okuma in control of the “Clamp/Unclamp” it is possible to accidentally leave the base in the unclamp state and start the spindle.
I use a timer to monitor the “Operation Mode”. If mode is not Manual I clamp the base.
If Not objMachine.GetOperationMode=OperationModeEnum.Manual then ClampBase()
Next: After the Operator enters the new measurement and clicks the “Set Limits” button, after doing some entry validation such as insuring the value entered is numeric and between certain values, I do a little something like:
Make sure we are in “Manual Mode” and set the “Sub System” to the B Turret.
If objMachine.GetOperationMode() = OperationModeEnum.Manual Then
objVar.SetSubSystem_Both(SubSystemEnum.NC_RUN_2)
Save the current values in case the function fails, and also to compare the old values to the new values to insure the function worked.
Dim oldPosValue As Double= objVar.GetUserParameterVariableLimit(UserParameterVariableLimitEnum.PlusVariableLimitInMachineCoordinate, AxisIndex5Enum.Z_Axis)
Dim oldNegValue As Double =objVar.GetUserParameterVariableLimit(UserParameterVariableLimitEnum.MinusVariableLimitInMachineCoordinate, AxisIndex5Enum.Z_Axis)
Change the limits to the new values.
objVar.SetUserParameterVariableLimit(UserParameterVariableLimitEnum.MinusVariableLimitInMachineCoordinate, AxisIndex5Enum.Z_Axis, zbMinus * 25.4)
objVar.SetUserParameterVariableLimit(UserParameterVariableLimitEnum.PlusVariableLimitInMachineCoordinate, AxisIndex5Enum.Z_Axis, zbPos * 25.4)
Remember: This is just a sample of what is going on, don’t forget you have to do validation, and you have to be sure that if the methods fail you revert everything back to a safe point. One of the clever things I do is watch the “ZB Limits” in a timer, if I see, that perhaps an Operator changes the limits through the “Parameters” page, I pop-up the application and a Warning Screen telling them that the values do not match. It allows them to choose to update the application values or reset the limits to match the application.