Adaptive Welding for Heavy Plate Fabrication
FANUC Robotics America
11/23/2010
This application note describes a strategy for adjusting weld deposition rate to varying volume weld joints based on measurement of the weld joint gap and weld center location at two ends of a straight weld seam in order to produce a uniform layer thickness.  The weld joint in this example is a half-vee joint with root backing:
The basic approach to welds of this type uses either Touch Sensing or iRVision to measure the weld joint gap at the root opening at either end of the weld joint.  The welding programs use TAST with Multipass/RPM to accommodate seam tracking requirements.  The gap measurements are used to calculate the volume of weld metal required to fill the gap for each weld pass and set the weave amplitude and weld travel speed to accomplish this goal.
Conditions
R-30iA Controller with V7.40P/11 (or later) ArcTool software
Options Required:
    Touch Sensing or iRVision 2D package
    Arc Ramping (included in Standard ArcTool beginning in V7.40P/09)
    TAST + MP/RPM option
System Variable Settings:
Set the following system variables:
$AWERAMP[1].$RAMP_ENABLE = TRUE
$AWERAMP[1].$RAMP_TO_POS = TRUE
$WVCFG.$RAMP_ENB = TRUE
$WV_OTF_GP[1].$OTF_ENABLE = TRUE
$WV_OTF_GP[1].$GET_AMP = TRUE
$SCR_GRP[1].$M_POS_ENB = TRUE
$SCR_GRP[1].$M_DST_ENB = TRUE
The $SCR_GRP variables are not necessary for operation but are enabled so Data Monitor can be used to record the actual position and travel speed during operation.  The
program SETSYSVAR.TP can be used to set these variables.
TP Program Structure
MAINWELD (shell program to control overall sequence)
- CALL MEASGAPS (Collects the joint measurement routines)
o CALL INITGAPS (zeros the gap width registers)
o CALL FIND_JT1 (finds joint and measures gap at position 1)
o CALL FIND_JT2 (finds joint and measures gap at position 2)register for
- CALL REGMATH (Calculate Travel Speed)
- CALL ADPTWV (Calculate weave amplitude)
- CALL CALC_TVL (Set travel speed in weld schedules)
- CALL PASSES (Performs the welding operation)
o CALL SCALEGAP (adjusts the gap measurement for fill passes)
       
Detail listing:
MAINWELD.TP
  1:  CALL MEASGAPS    ;
  2:  CALL REGMATH    ;
  3:  CALL ADPTWV    ;
  4:  CALL CALC_TVL    ;
  5:  PAUSE ;
  6:  CALL PASSES    ;
MEASGAPS.TP
  1:  UFRAME_NUM=0 ;
  2:  UTOOL_NUM=1 ;
  3:  CALL INITGAPS    ;
  4:J P[1] 30% FINE    ;
  5:J P[2] 20% FINE    ;
  6:  CALL FEEDWIRE    ;
  7:  CALL FIND_JT1    ;
  8:  PR[150:TEMP]=LPOS    ;
  9:  PR[150,3:TEMP]=PR[150,3:TEMP]+100    ;
  10:J PR[150:TEMP] 30% FINE    ;
  11:J P[1] 30% FINE    ;
  12:  CALL FIND_JT2    ;
  13:  PR[150:TEMP]=LPOS    ;
  14:  PR[150,3:TEMP]=PR[150,3:TEMP]+100    ;
  15:J PR[150:TEMP] 30% FINE    ;
  16:J P[1] 30% FINE    ;
  17:  DO[5:Wire Inch Bkwd]=PULSE,0.7sec ;
INITGAPS.TP
  1:  R[140:GAP 1 mm]=0    ;
  2:  R[141:GAP 2 mm]=0    ;
  3:  R[144:Multipass Index]=0
FEEDWIRE.TP
      1:  PR[10]=LPOS    ;
  2:J PR[10] 5% FINE    ;
  3:  LBL[1] ;
  4:  DO[3:Touch ON]=ON ;
  5:  DO[4:Wire Inch Fwd]=ON ;
  6:  IF DI[2:Touch Input]=ON,JMP LBL[2] ;
  7:  WAIT    .01(sec) ;
  8:  JMP LBL[1] ;
  9:  LBL[2] ;
  10:  DO[4:Wire Inch Fwd]=OFF ;
  11:  WAIT    .10(sec) ;
  12:  DO[3:Touch ON]=OFF ;
  13:  DO[5:Wire Inch Bkwd]=ON ;
  14:  WAIT    .10(sec) ;
  15:  DO[5:Wire Inch Bkwd]=OFF ;
FIND_JT1JT2.TP
The FIND_JTx.TP programs are the same except for the search start location, the gap register, and the position register index for saving the found joint center location.  The lines shown in RED change for as many gap measurement locations are needed.
  1:  UFRAME_NUM=0 ;
  2:  UTOOL_NUM=1 ;
  3:  R[145:Z - Zero Plane]=0    ;
  4:J PR[151:Search Pos 1] 30% FINE    ;
  5:  PR[150:TEMP]=PR[151:Search Pos 1]    ;
  6:  LBL[1] ;
  7:  !FIND JOINT ;
  8:J PR[150:TEMP] 30% FINE    ;
  9:  Search Start [1] PR[40] ;
  10:J PR[150:TEMP] 30% FINE Search[-Z]    ;
  11:  Search End ;
  12:  R[145:Z - Zero Plane]=PR[40,3]    ;
  13:  IF R[145:Z - Zero Plane]<(-2),JMP LBL[2] ;
  14:  PR[150,1:TEMP]=PR[150,1:TEMP]+3    ;
  15:  JMP LBL[1] ;
  16:  !FIND EDGE 1 ;
  17:  LBL[2] ;
  18:  PR[150:TEMP]=PR[32]    ;
  19:  PR[150,1:TEMP]=PR[150,1:TEMP]+3    ;
  20:J PR[150:TEMP] 30% FINE    ;
  21:  Search Start [1] PR[40] ;
  22:J PR[150:TEMP] 30% FINE Search[X]    ;
  23:  PR[150:TEMP]=PR[32]    ;
  24:  Search End ;
  25:  PR[150,1:TEMP]=PR[150,1:TEMP]-2    ;
  26:J PR[150:TEMP] 20% FINE    ;

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。