Machine Tending Dual Vice, Single Part

I am working on setting up an operation for tending a HAAS VF3 CNC machine.
The part I am working with is 1.5" wide by 20" long and 1" thick.
The part is long enough that we need to run it in two vices side by side.
And due to the nature of the material, it can be bowed up to .1" and needs to be flat in the machine.
Typically this was done by an operator smacking it with a dead blow mallet.

We have the vices, which are pneumatically actuated via solenoid, wired into digital outputs 1 and 2 on the robot.

But I also want to wire the solenoids into relays on the machine that can also be actuated with custom M-codes so that after the part is loaded by the robot, the vice actuation that is needed while using the mill part pusher can be done via custom M-codes on the machine so that the program for pushing the part flat and actually cutting the geometry is all kept within a single CNC nc program.

Has anyone done this type of setup before? Is it okay/possible for the vices to be setup so that they can be controlled by both the robot controller and the CNC machine?

Not quite understanding the full cycle here, but my first inclination would be to let the robot controller handle the vice, but have the mill outputting signals to the robot’s inputs - the robot program can then determine when to actuate/release the vice based on what the mill is doing.
The M code would be configured to wait for a signal from the robot that the action has been completed.
You could probably reverse this and have the mill controlling the vice based on inputs from the robot - not sure which would make more sense.

Thank you. This makes more sense now. I would initiate the program and have the robot load the part into the vises and then clamp both. I would position the CNC machine with the mill part pusher where I want it and fire a M-code that would send a signal to the robot input. When the robot sees this input, it would open and then close the vise and then CNC program would resume and move to the second location and repeat the process with another M code.

Yes, but keep in mind when you have 2 different machines tied together this way, there are opportunities for bad things to happen - it’s easy to have them lose their synchronization if the system is stopped mid cycle.
Usually this means having several inputs & outputs which are activated at various points in the program (both machines) to verify that the robot is where the mill expects it to be and vice-versa.

Personally, the systems I’ve worked on have been mostly gaging systems, where I just needed to verify, for example, that a gage arm or air cylinder has been retracted before allowing the robot to place or retrieve a part.

We also have some lathe loading systems where there was much more danger of bad things happening. I wasn’t directly involved with these systems, but I know there were some instance of the lathe starting its cycle with the robot arm still in the machine.

1 Like