Hi there,
In one of our applications we have a FANUC welding robot doing a whole bunch of really big tac welds. The client insists on not increasing the stiffness of the fixture. Unfortunately the pieces being tac'ed together are quite bending and sometimes the robot misses. The robot misses due to the pieces that are being welded are not in the same place when they were programmed.
I'm wondering if it is possible to skip a weld based on the arc detect. On our robot DI[57:ARC_DETECT] is the input for the arc detect.
FANUC support suggested I try to use the skip condition but it seems that the robot might wait at the Arc Start[1]; command for the arc to start before proceeding to the next line... so putting the skip command on the move command that comes afterward doesn't seem to do what I want.
I also tried increasing the "Arc Start error time" in the following menu... I increased it from 2 seconds to 9 seconds.
MENU>SETUP>WELD EQUIP
This also didn't seem to work as the in roboguide, the robot just waits at the Arc Start[1]; line for the 9 second to pass and then throws the ARC-013 "Arc Start Failed" error.
Here's some sample code...
: !Set skip condition;
: !If this condition is satisfied during the move;
: !Everything proceeds as normal;
: !If this condition is not satisfied during the move;
: !It skips to the label;
: SKIP CONDITION DI[57:ARC_DETECT]=ON;
: !copy point;
: PR[4:CLEARANCE] = PR[3:ORIGINAL];
: ! Move to clearance position;
: !Jogging along the tool axis;
: CALL CLEAR_OFFSETS;
: PR[5,3:TOOL_OFFSET] = R[15:WELD_CLEAR];
: L PR[4:CLEARANCE] R[102:MED_SPEED]mm/sec FINE Tool_Offset, PR[5:TOOL_OFFSET];
: ! Move to left of weld position;
: PR[4:OP] = PR[3:ORIGINAL];
: PR[4,1:OP] = PR[4,1:OP] - R[16:WELD_X_OFFSET];
: PR[4,2:OP] = PR[4,2:OP] - R[17:WELD_Y_OFFSET];
: L PR[4:OP] R[103:SLO_SPEED]mm/sec FINE;
: ! Start weld;
: Arc Start[1];
: ! Move up above the weld position;
: ! Assuming 1 mm amplitude;
: PR[4,2:OP] = PR[4,2:OP] + 3.0;
: L PR[4:OP] R[104:WELD_FEED]mm/sec FINE Skip,LBL[70];
: ! Start weaving;
: Weave Sine[1];
: ! Move to right of weld position;
: PR[4,1:OP] = PR[4,1:OP] + R[16:WELD_X_OFFSET];
: PR[4,1:OP] = PR[4,1:OP] + R[16:WELD_X_OFFSET];
: PR[4,2:OP] = PR[4,2:OP] + R[17:WELD_Y_OFFSET];
: PR[4,2:OP] = PR[4,2:OP] + R[17:WELD_Y_OFFSET];
: L PR[4:OP] R[104:WELD_FEED]mm/sec FINE Skip,LBL[70];
: ! End Weld;
: Weave End[1];
: Arc End[1];
: !Move to clearance position;
: !Jogging along the tool axis;
: LBL[70];
: CALL CLEAR_OFFSETS;
: PR[5,3:TOOL_OFFSET] = R[15:WELD_CLEAR];
: L PR[4:CLEARANCE] R[103:SLO_SPEED]mm/sec FINE Tool_Offset, PR[5:TOOL_OFFSET];
Maybe this would work for skipping the movements if the arc was somehow lost during the weld...
However the main issue is the arc not starting at the beginning of the weld in the first place.
Appreciate any help or opinions about this.
Thanks,
Bruce