Vous êtes sur la page 1sur 94

Chapter 1

ADAPTIVE WELDING WITH SERVOROBOT SENSOR

Table of Contents

Chapter 1 ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR ............................... 1-1


1.1
OVERVIEW......................................................................................................... 1-3
1.1.1
Limitations of the Servo-Robot Sensor Interface ................................................. 1-4
1.2
INSTALLING THE SERVO-ROBOT SENSOR AND SOFTWARE ................ 1-5
1.2.1
Additional Requirements...................................................................................... 1-5
1.2.2
E-Stop Connection ............................................................................................... 1-5
1.2.3
Laser Warning Light ............................................................................................ 1-6
1.2.4
Communication Connection ................................................................................. 1-7
1.2.4.1
RS-232C Communication .................................................................................... 1-7
1.2.4.2
Ethernet Communication...................................................................................... 1-8
1.2.5
Validating Communications ............................................................................... 1-10
1.3
SENSOR SETUP ............................................................................................... 1-11
1.3.1
Overview ............................................................................................................ 1-11
1.3.2
Disable Constant Path ........................................................................................ 1-11
1.3.3
Tool Frame Setup ............................................................................................... 1-11
1.3.4
Setting Up the Tool Frame ................................................................................. 1-12
1.3.5
Checking the Tool Frame Setting....................................................................... 1-12
1.3.6
Setting Up the Sensor Frame Using the Direct Entry Method ........................... 1-12
1.3.7
Setting Up the Sensor Frame Using the Ten Point Teaching Method ............... 1-13
1.3.8
Setting Up the Sensor System ............................................................................ 1-22
1.4
SENSOR DATA AND STATUS ....................................................................... 1-24
1.4.1
Overview ............................................................................................................ 1-24
1.4.2
Sensor Schedule Setup ....................................................................................... 1-24
1.4.3
Motion Sensitivity .............................................................................................. 1-27
1.4.4
Sensor Schedules ................................................................................................ 1-30
1.4.5
Detection Log ..................................................................................................... 1-31
1.5
SETTING WELD PROCESS DATA FOR MULTI-PASS ADAPTIVE
WELDING 1-33
1.5.1
Setting Up Multi-Pass Data ................................................................................ 1-33
1.5.2
Setting Up the Adapt Data ................................................................................. 1-38
1.6
PROGRAMMING ............................................................................................. 1-43
1.6.1
Search ................................................................................................................. 1-44
1.6.2
Search Schedule ................................................................................................. 1-45
1-1

1. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR

1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
1.7
1.7.1
1.7.2
1.7.3
1.8
1.9
1.9.1
1.9.2
1.9.3
1.9.4
1.9.5
1.9.6
1.9.7

1-2

A-83971

Offset Instructions .............................................................................................. 1-45


Search Programming .......................................................................................... 1-46
Track................................................................................................................... 1-57
Track Schedule ................................................................................................... 1-57
Track Programming............................................................................................ 1-57
ROOT PASS MEMORIZATION AND MULTI-PASS .................................... 1-65
Root Pass Memorization .................................................................................... 1-65
Using Multi-Pass with Adaptive Welding ......................................................... 1-68
Programming ...................................................................................................... 1-69
ADAPTIVE WELDING .................................................................................... 1-72
SENSOR APPLICATION SOFTWARE ........................................................... 1-78
Setup ................................................................................................................... 1-78
MIG_CRS........................................................................................................... 1-78
MIG_CRS2......................................................................................................... 1-80
MIG_VECTOR .................................................................................................. 1-81
MIG_CIRCLE .................................................................................................... 1-83
MIG_FRAME .................................................................................................... 1-84
Sample Applications .......................................................................................... 1-86

1. ADAPTIVE WELDING WITH SERVOROBOT SENSOR

1.1

OVERVIEW
The Adaptive Welding feature allows you to adjust the weld process to compensate for the
variation in the weld joint geometry. The adaptive welding feature works in conjunction with
the seam tracking feature, which adjusts the path of the TCP to compensate for variations in
joint location. Adaptive Welding uses a Servo-Robot vision sensor to scan the weld joint as it
is being welded. The data provided by the Servo-Robot sensor can be used by the Adaptive
Welding feature to automatically adjust weld and weave parameters to optimize the quality
of the weld.
Note the performance of the Servo Robot Sensor Interface option is highly dependent on the
application requirements, weld process operating conditions, and weld joint design. As such,
FANUC Robotics always verifies the functionality of this feature for each specific
application. Contact your local FANUC representative for an evaluation of your welding
application prior to ordering or implementing the Servo Robot Sensor Interface.
When you use Adaptive Welding with the Multi-Pass feature, the joint location and geometry
data obtained during the Root Pass is memorized with the Root Pass Memorization feature
(RPM) and later re-used for tracking and adaptive welding on the subsequent passes with the
Multi-Pass (MP) feature.
An Adaptive Welding system consists of the following hardware and software components:

Servo-Robot sensor - Several models are available from Servo-Robot, Inc.


A cable RS-232C or Ethernet (Depends on Servo Robot hardware) to connect the ServoRobot sensor interface to an RS-232C- port or to the Ethernet port on the controller.
A PC to set up the sensor, and define the joint libraries using the WinUser software.

To use adaptive welding features, you need to do the following:

Install and configure the Servo-Robot vision sensor using the WinUser software.
Install the Servo-Robot software option on your controller
Define a sensor frame using the ten points method.
Write and execute a program that contains Multi-Pass and Adaptive Welding data and
track/offset instructions.

Figure 1-1 shows a basic adaptive welding system.

1-3

1. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR

A-83971

Figure 1-1. Basic Adaptive Welding System

1.1.1

Limitations of the Servo-Robot Sensor Interface

1-4

Doesnt support Constant Path.


Support only one (1) Servo-Robot sensor per robot controller.
In a multi-arm robot cell, if more than one robot must have a Servo-Robot sensor, you
must configure the system with one robot controller for each robot that will carry a
sensor.
If a multi-arm system is configured with one robot controller, you can use one (1)
Servo-Robot sensor but it must be attached to Group 1.
The Servo-Robot sensor is connected to the robot controller using an available RS-232C
serial port which is configured using the "Sensor" selection on the PORT INIT menu and
the data rate must be either 9600 Baud or 19.2 KBauds.
There is no support with the Servo-Robot sensor for stationary tracking. This means that
the robot carrying the sensor must have some motion.
All tracking motion must be Linear Motion type. This means that circles and curves are
taught as linear segments. The sensor must compensate for both the part-to-part
variations as well as the difference between the taught linear path and the nominal part
shape. Coordinated Motion is supported as long as the specified tracking motion is Linear
and subject to the limitation regarding stationary tracking.
Sensor feedback data is limited to X, Y, Z, gap, area, and B1-Bn breakpoint coordinates,
depending on the selected joint template (lap, fillet, v-groove, etc.). No orientation or
trajectory information is returned by the sensor so the user TP program must "steer" the
sensor to maintain the sensor scan line nominally transverse to the weld joint.
Adaptive weld process control is implemented using a specific TP programming
method.
All Weld, Weave, Multi-Pass, and sensor data is stored in the TP program header. Each
weld joint (regardless of how many weld passes) has a separate TP program that is called
from a MAIN.TP program that handles the sequence of welding for the overall part.
There is no support for a sensor rotator with the Servo-Robot Sensor Interface.

1. ADAPTIVE WELDING WITH SERVOROBOT SENSOR

Tracking motion with integral extended axes beyond one (a seventh axis such as an
integrated rail) is not qualified.
The Tack Avoidance function is not supported.

1.2
INSTALLING THE SERVO-ROBOT SENSOR AND
SOFTWARE
Before you can use the sensor with your controller, you need to install the Servo-Robot
Sensor. After you have installed the servo-robot sensor on your robot, you need to:

Configure the sensor.


Set up the joint libraries with a PC connected to the sensor controller and running
WinUser software.

Refer to the Servo-Robot Installation and Operation Manual for information about how to
set up the Servo-Robot sensor. The VISUS Image Processing Software Manual contains
definitions of joint types supported by the Servo-Robot sensors.
Note Adaptive Welding supports only the joints supported by the Servo-Robot sensor. In
order to use Adaptive Welding effectively, you need to know the joint definitions and
measurements provided by the Servo-Robot sensor for each joint type. You need to configure
the Servo-Robot sensor's joint parameters on the Servo-Robot sensor controller with the
WinUser software.
Refer to the WinUser software documentation to set up the Servo-Robot sensor interface
with your PC.

1.2.1

Additional Requirements
In addition to the setup requirements described in the Servo-Robot Sensor Installation and
Operation manual, you need to install the following components on your controller:

1.2.2

Servo-Robot E-Stop connection


Laser Warning Light
Communication Connection

E-Stop Connection
Connect the Servo Robot control to the robot controller using the wiring diagram shown in
Figure 1-2 .

1-5

1. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR

A-83971

Figure 1-2. Servo-Robot E-Stop Connection Wiring Diagram

The EMGIN1 and EMGIN2 connections are located on the PCB on the door inside the on the
back of the operator panel. There will be a jumper installed from the factory that will need to
be removed for the circuit to work correctly.

1.2.3

Laser Warning Light


FANUC Robotics requires that a warning light be attached to the operator box for a robot
with an A-size controller or to the controller cabinet for robots with a B-size controller. The
light should be attached as shown in Figure 1-3. Refer to the Servo-Robot documentation for
specifications on connector CN4.

Figure 1-3. Attaching the Laser Warning Light

Your installation should conform to safety requirements of the site, acceptable standards, and
legal requirements of appropriate governing bodies where the system is to be installed.
1-6

1. ADAPTIVE WELDING WITH SERVOROBOT SENSOR

1.2.4

Communication Connection

1.2.4.1

RS-232C Communication
Connect the communications cable to the Servo-Robot controller box from the robot
controller using the wiring diagram shown in Figure 1-4.

Figure 1-4. Communication Connection Wiring Diagram

The controller uses the Servo Robot sensor interface function to communicate with the
Servo-Robot sensor controller. Select and configure one of the communications ports from
the following list:

P2: DB25 connector labeled "RS-232-C" on the controller operator panel


P3: DB25 connector labeled "PORT B" on the back of the controller operator panel

Use Procedure 1-1 and Procedure 1-2 below to configure and verify the controller to sensor
controller communication.
Procedure 1-1 Sensor Port Configuration
Conditions

The controller is properly configured with the Servo-Robot software option


installed.
A full NULL modem cable is installed between the Sensor Controller CN6 port and
the controller communication port P2 or P3.

Steps
1.

Press MENUS.

2.

Select SETUP.

3.

Press F1, [TYPE].

4.

Select Port Init.

5.

Move the cursor to P2 or P3

6.

Press F3, DETAIL.

7.

Set up the port as follows:


1-7

1. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR

1.2.4.2

A-83971

Set Device to SENSOR.


Set Speed (Baud rate) to 19200.
Set Parity bit to None.
Set Stop bit to 1 bit.
Set Time out value to 0 sec.

Ethernet Communication
You must set up TCP/IP before you can use Internet Protocol Applications. Setup is required
in two areas:
Hardware - includes port initialization and cable and connector requirements
Software - includes host communication device definition
The R30iA controller supports two 10 Base-T or 100 Base-TX interfaces through the RJ45
Ethernet connectors. Connect your Sensor device to one of this port.
This port then should only be connected to the sensor!
Setup Software
1. Press MENUS.
2. Select SETUP.
3. Press F1, [TYPE].
4. Select Host Comm. You will see a screen similar to the following.

5. Make sure TCP/IP is selected.


6. Press F3, DETAIL. You will see a screen similar to the following.

1-8

1. ADAPTIVE WELDING WITH SERVOROBOT SENSOR


Note There are two areas in which to enter the Host Name and Internet Address mappings on
the TCP/IP Setup screen:
Local Area - Data in this area is saved as part of SYSVARS.SV ($HOSTENT[]).
SYSVARS.SV should not be shared between robots.
Shared Area - can include any Host Name/Internet Address mapping that is to be used as
part of the client tag configuration, but should not include robot name or router name entries.
Data in this area is saved as part of SYSHOST.SV ($HOST_SHARED[]).
In addition to Host name/Internet Address mapping, SYSHOST.SV ($HOST_SHARED[])
contains information about Telnet and DNS. A SYSHOST.SV can be shared between robots
and can be downloaded from one robot to create a complete DNS, Telnet, and Shared host
configuration on another Robot.
7. Move the cursor to each item and specify the appropriate information:
Robot name specify the unique name of the robot controller.
Port # indicates whether you are configuring interface #1 (top RJ45 labeled as
CD38A)or interface #2 (bottom RJ45 labeled as CD38B). Use the F3, Port key to change.
Robot IP Address specify IP address of the robot.
Subnet Mask - This must be set. The default value is 255.255.255.0. Consult your
network administrator for guidance in setting this value.
*(This must be the same as for your Sensor)
Board address This is the Ethernet (MAC) address of the robot.
Router IP address specify IP address of the router. This can be left blank if no router is
used. The router address needs to be on the same subnet as interface #1 or interface #2. This
is where packets for any destination not on subnet for interface #1 or #2 will be sent.
Note The board address is displayed and cannot be changed.
Note Robot Name, Router IP address, and the Host Name/Internet Address table are shared
between Ethernet interface #1 and interface #2.
Host Name/Internet Address - specify the unique host name and Internet address of each
host with which the controller will communicate as a client. (e.g. your Sensor Controller)
For example: HOST NAME must be SR:
Host Name (SHARED)

Internet Address

192.168.0.100

SR

2 ********** ************************

1-9

1. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR

1.2.5

A-83971

Validating Communications

Procedure 1-2 Validating Communications


Conditions

The controller is properly configured with the Servo-Robot software option


installed.
A full NULL modem cable or Ethernet cable is installed between the Servo Robot
controller port and the controller communication port P2 or P3 or Ethernet.
Proper safety equipment is in place and proper safety procedures have been
performed.
The Servo-Robot sensor controller is powered and sensor ON/OFF functions (using
Servo-Robot WinUser software on a PC) are working properly.
The laser is turned off.

Steps
1.

Create the program shown in Example 1-1.

Example 1-1. Communication Validation Program

1: SENSOR ON [1]
2: WAIT 5sec
3: SENSOR OFF[END]

2.

Execute the program in Example 1-1.


Watch for the laser light on the target surface to go on for five seconds and then go off, and
the program to terminate normally.
If the cable is not a null modem, then the following error will be displayed:
MIGE-017 Sensor on/off failed

The SENSOR ON and SENSOR OFF instructions are in the SENSOR category of the
[INST] sub-menu.
If there is a bad RX line at the robot controller, the sensor will turn on, but the program
will pause with the following error:
MIGE-017 Sensor on/off failed
Cause code:
MIGE-115 Comm. Error (H:Time out)

1-10

1. ADAPTIVE WELDING WITH SERVOROBOT SENSOR

1.3

SENSOR SETUP

1.3.1

Overview
In order for Adaptive Welding to adjust the path of the robot's TCP to track the weld joint,
the location of the joint relative to the coordinates of the TCP must be calculated by Adaptive
Welding. This is why it is important to accurately define the sensor frame, which is the
physical location of the Servo-Robot sensor relative to the robot's faceplate.
This section describes how to set up the sensor frame, which must be done before you use the
Servo-Robot vision sensor on your controller.
Prior to setting up the sensor frame, you must have defined an accurate tool frame. If you
have not calculated a tool frame, refer to Section 1.3.4 for information on setting up a tool
frame. Refer to Section 1.3.7 to set up the sensor frame with the Ten Point Teaching Method.
If you have already calculated a tool frame and you know the X, Y, Z, W, P and R values of
the sensor frame, you can enter the coordinates for it with the direct entry method, which is
shown in Section 1.3.6.

1.3.2

Disable Constant Path


Servo Robot option doesnt support Constant Path features, so it must be disabled.

Disabling Constant Path:


Steps

1.3.3

1.

Press MENUS.

2.

Select SYSTEM.

3.

Press F1, [TYPE].

4.

Select Variables.

5.

Move the cursor to $CPCFG.

6.

Press Enter.

7.

Select $CP_ENB and set it to FALSE.

8.

Cycle Power the controller.

Tool Frame Setup


Servo-Robot uses the tool center point, TCP, as a reference for calculating offset data during
tracking. You must set up the TCP by defining the tool frame prior to using the sensor to
scan welds.
Note: FANUC Robotics recommends that you set up your tool frame with the Six Point
method.

1-11

1. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR

1.3.4

A-83971

Setting Up the Tool Frame


Set up the tool frame so that the TCP position is at the tip of the welding wire with normal
wire stick-out (typically 5/8 inch or 15 mm from the contact tip of the torch barrel).

1.3.5

Checking the Tool Frame Setting


After setting the TCP, jog the robot in the TOOL frame coordinate system to verify that the
TCP point and orientation are correct: jog the robot using the TOOL coordinate system to a
pointing device and rotate the tool about x, y, and z. The TCP should stay in one place.

1.3.6

Setting Up the Sensor Frame Using the Direct Entry Method


If you have previously calculated a sensor frame, and you have the values of the frame's x, y,
z, w, p, and r coordinates, you can use the direct entry method to enter the coordinates of
your sensor frame. Use Procedure 1-3 to directly enter your tool frame coordinates.
Note: If you are setting up the Servo-Robot sensor for the first time, use the Ten Point
Method shown in Procedure 1-5.
-

Table 1-1. SETUP Sensor Frame Direct Entry Screen Items

ITEM

DESCRIPTION

Frame

This item displays the sensor and is non-editable.

X, Y, Z, W, P, R

Displays the X, Y, Z, W, P, R values of the sensor frame.

Procedure 1-3 Sensor Frame Direct Entry Method


Conditions

You have previously calculated a sensor frame with the Ten Point Method, and you
have the x, y, z, w, p, and r coordinates of that sensor frame.

Steps
1.

Press MENUS.

2.

Select SETUP.

3.

Press F1, [TYPE].

4.

Select Sensor Frames. You will see a screen similar to the following
SETUP Sensor Frame
Sensor Frame Setup/Direct Entry
1
2
3
4
5
6

1-12

X:
Y:
Z:
W:
P:
R:

0.000
0.000
0.000
0.000
0.000
0.000

1/6 Frame : Sensor

1. ADAPTIVE WELDING WITH SERVOROBOT SENSOR

5.

If the Direct Entry screen is not displayed, press F2, METHOD, and select 2, Direct Entry,
as shown in the screen below.
1 TEN Point
2 Direct Entry

6.

Move the cursor to each value of the Sensor Frame, and enter the information with the teach
pendant, as shown in the following screen.
SETUP Sensor Frame
Sensor Frame Setup/Direct Entry
1
2
3
4
5
6

1.3.7

X:
Y:
Z:
W:
P:
R:

2/6 Frame : Sensor

202.321
1042.
0.000
0.000
0.000
0.000

Setting Up the Sensor Frame Using the Ten Point Teaching Method
The Ten Point Method is the recommended method to set the camera frame. It uses a known
reference joint with ten taught points. The 1st and 2nd TCP reference points establish a
vector of known length on the reference/calibration joint. The robot moves between the 3rd
through 10th points with different xyz offsets and orientations around the TCP . At each
position the camera looks at the joint. When all of the position moves have been completed
the new camera frame and origin offsets are calculated.
The reference joint must be made in a straight line. A sharp, clean edged lap joint with no
gap is recommended. This calibration joint should not be part of the work piece. It may,
however, be incorporated as part of the fixture or robot cell as a permanent reference.
Two additional programs are called by the calibration routine, LASON.TP, shown in Figure
1-5, and SEARCH.TP, shown in Figure 1-6.

Figure 1-5. LASON.TP

LASON
1/2
1: SENSOR ON[1]
[End]
Figure 1-6. SEARCH.TP

SEARCH
1/4
1: SENSOR SEARCH START PR[1]
2: SENSOR SEARCH POINT[1]
3: SENSOR SEARCH END
[End]
1-13

1. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR

A-83971

Note: The SEARCH.TP program uses Position Register 1 as shown in line 1 and Search
Schedule 1, as shown in line 2 of Figure 1-6. You must always use PR[1] for calibration.
The joint number is part of the Sensor Schedule, and it determines which joint from the
Servo-Robot Joint Library will be searched. You can use Procedure 1-4 to change the joint
number to be searched, or other information within a new Sensor Schedule, providing you
have set up the Servo-Robot sensor controller.
Note: It is important that all the Search bias settings are set to ZERO in the Sensor Search
schedule for calibration.

Refer to Table 1-2 for Servo-Robot Schedule Screen setup items.


Table 1-2. SERVO-ROBOT Schedule Screen Items

ITEM

DESCRIPTION

Servo-Robot
Schedule:
[Comment]

This item identifies the sensor schedule and provides an area in which to
add a comment for the schedule.

SR Track Joint This item selects the joint to be detected for tracking from the Servo-Robot
Num
joint library.
Tracking Type This item specifies the type of tracking that will be performed:
STANDARD tracking or STATIONARY tracking. By default, tracking
type is set to STANDARD. Stationary tracking refers to tracking an object
that is being rotated by an extended axis. Currently, only STANDARD
tracking is supported.
Motion
Sensitivity

This item specifies how reactive the robot motion system will be to sensor
data. A low value of motion sensitivity provides a slow motion response,
large filtering buffer, and so forth.
High values for motion sensitivity might be potentially unstable, but are
very reactive to sensor data.
A value of 1 is least sensitive, 5 is most sensitive. The default value is 3.
Motion sensitivity determines the motion buffer distance and the number of
consecutive failed scans allowed before the robot stops tracking.

Y Bias (Track) This item adds an offset to the Y value of the found joint location in the
sensor frame. This is used to obtain proper alignment of the welding wire to
the joint.
Z-Bias (Track) This item adds an offset to the Z value of the found joint location in the
sensor frame. This is used to obtain proper location of the welding wire in
the joint.
1-14

1. ADAPTIVE WELDING WITH SERVOROBOT SENSOR


Stationary
Track Frame

Stationary tracking is not currently available.

Tack
Avoidance
Default:
FALSE

Tack Avoidance is not currently available.

Tack
Tack Avoidance is not currently available.
Threshold
Default: 0 mm
Range: 0-100
mm
Tack Length Tack Avoidance is not currently available.
Default: 0 mm
Range: 0-500
mm
SR Search
Joint Num

This item selects the joint number from the Servo-Robot's joint library for
searching purposes.

Search Type

Defines the type of searching. There are two kinds of search:

Position search calculates a "real position" in space to which the robot


can move.

Offset search provides an incremental value that is used to offset


positions in a program.

Detection
Count

Specifies the number of joint detections to be executed per one Sensor


Search Point instruction. The recommended detection count is 3.

Retry Count
Range: 0-5

Specifies the number of retry motions that will automatically be performed.


If the value is 0, the joint will only be searched in one location.

Retry
Direction

Defines the direction that the robot will move if Retry Count is greater than
zero and a search fails. The robot moves the amount indicated by Retry
Distance and in the direction indicated by Retry Direction: x, -x, y, -y, z, -z
in the sensor frame.

Retry Distance Specifies the distance the sensor moves before the search is tried again.
Distance must be greater than 0 to have motion occur. It is recommended
that you use 3 mm for the Retry Distance.
Y-Bias
(Search)

Adds an offset to the Y value of the found joint location in the sensor
frame. This is used to obtain proper alignment of the welding wire to the
joint.

Z-Bias
(Search)

Adds an offset to the Z value of the found joint location in the sensor frame.
This is used to obtain proper location of the welding wire in the joint.

Procedure 1-4 Setting Sensor Schedule Data


Conditions

You have set up the Servo-Robot sensor controller with the WinUser Software, and
you have taught a sensor frame.

1-15

1. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR

A-83971

Steps
1.

Press DATA, then press F1, [TYPE]. Select "Sensor Sched" and press ENTER. You will
see a screen similar to the following.
SERVO ROBOT Sch.

1
2
3
4
5
6
7
8
9

2.

Trk Jnt_Num
1
1
1
1
1
1
1
1
1

Srch Jnt_Num
1
1
1
1
1
1
1
1
1

1/10
Times
1
1
1
1
1
1
1
1
1

Press F3, DETAIL. You will see a screen similar to the following.
SERVO ROBOT Sch.
1/18
1 Servo Robot Schedule:1\ [********]
Tracking Setup
2 SR Track Joint Num
3 Tracking Type
4 Motion Sensitivity
5 Y-Bias (mm)
6 Z-Bias (mm)
7 Stationary Track Frame
8 Tack Avoidance
9 Tack Threshold(mm)
10 Tack Length (mm)
Search Setup
11 SR Search Joint Num
12 Search Type
13 Detection Count
14 Retry Count
15 Retry Direction
16 Retry Distance (mm)
17 Y-Bias (mm)
18 Z-Bias (mm)

3.

1
Position
3
0
X
3.0
0.00
0.00

Set the Search Setup data in the schedule as follows:

1-16

1
Standard
3
0.00
0.00
0
Disable
2.00
40.00

SR Search Joint Num is the joint library number in the Servo-Robot controller.

1. ADAPTIVE WELDING WITH SERVOROBOT SENSOR

This must correspond to the reference joint used in the Ten Point Calibration Method.
Set Search Type to Position.
Set Detection Count to 3.
Set Retry Count to 0. Retry Direction and Retry Distance are not used when retry
count is zero. Refer to Section 1.4 for further details.
Set Y-Bias and Z-Bias to 0.

Figure 1-7. Teaching Reference Positions for Sensor Calibration

Items 2-10 contain tracking data, and items 11-18 contain search data. Refer to Section 1.4
for a description of the items on this screen.
Table 1-3. SETUP Sensor Frame Ten Point Screen Items

ITEM

DESCRIPTION

Sensor

This item displays the X, Y, and Z components of the sensor frame.

TCP Reference Point This item allows you to teach the TCP reference points.
1 and 2
Reference Pair 1-4

This item allows you to record the reference positions for


calibration.

Procedure 1-5 Ten Point Calibration for Servo-Robot Sensor Frame Setup
Conditions

You have installed the Servo-Robot sensor option on your controller.


You have installed the Servo-Robot sensor and interface.
Proper safety equipment is in place and proper safety procedures have been
performed.
The Servo-Robot sensor controller is turned on, and you have verified the ServoRobot sensor ON/OFF functions with the WinUser software on your PC.
A Servo-Robot joint definition exists in the Servo-Robot joint library for the
calibration joint.
You have set up a sensor schedule that uses the joint number defined in the ServoRobot joint library.
In this example a lap joint is used to calibrate the sensor frame. You must set Track
1-17

1. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR

A-83971

Point Method to 1 in the VISUS configuration to allow the scan point to be measured
at the top edge of the lap joint.
The Servo-Robot sensor's laser is turned off.

Steps
1.

Press MENUS.

2.

Select SETUP.

3.

Press F1, [TYPE].

4.

Select Sensor Frame. You will see a screen similar to the following.
SETUP Sensor Frame
Sensor Frame Setup/Direct Entry

1/6

Frame : Sensor
1
2
3
4
5
6

X:
Y:
Z:
W:
P:
R:

5.

Press F2, [METHOD].

6.

Select Ten Point.

0.000
0.000
0.000
0.000
0.000
0.000

The reference positions must be taught with the wire tip (TCP) exactly on the joint line of
the weld. The recommended method for doing this is to mark two points on the calibration
joint at least 10 inches (254 mm) apart as shown in Figure 1-7 . These positions must also be
carefully marked on the joint since the remaining positions are taught with the laser scan line
crossing the joint exactly at these locations.
SETUP Sensor Frame
Sensor Frame Setup/Direct Entry
Sensor
X:
0.0 Y:
0.0 Z:

1/10
0.0

TCP Reference Point 1: UNINIT


TCP Reference Point 2: UNINIT
Laser Line on Marked Joint Positions
Reference Pair 1 Point 1: UNINIT
Reference Pair 1 Point 2: UNINIT
Reference Pair 2 Point 1: UNINIT
Reference Pair 2 Point 2: UNINIT
Reference Pair 3 Point 1: UNINIT
Reference Pair 3 Point 2: UNINIT
Reference Pair 4 Point 1: UNINIT
Reference Pair 4 Point 2: UNINIT
1-18

1. ADAPTIVE WELDING WITH SERVOROBOT SENSOR


7.
8.
9.

Jog the robot so that the TCP is at the first reference point, with the sensor between the two
reference points. The sensor scan should be roughly centered on the joint.
Move the cursor to the TCP reference Point 1.
Without changing the robot orientation, move the robot along the joint to the second
reference position. Record Reference Point 2.

10. See Figure 1-8 for an illustration of teaching reference points for Pair 1.
Figure 1-8. Teaching Pair 1

11. Turn on the laser by using the laser control switch on the sensor controller. Move the cursor
to TCP reference Point 1 and press F4, MOVE_TO to move to the first reference point.
12. Change the teach pendant jogging coordinate mode to WORLD.
13. Jog the robot to place the laser scan line on the 1st reference mark. Shift the robot position
in x, y and z directions to make sure that the TCP is NOT on the joint line. The laser scan
line must be exactly on the reference mark.
14. Move the cursor to Reference Pair 1, Point 1. Press F5, RECORD to record Pair 1-Point 1.
15. Jog the robot in WORLD mode, using only the X, Y & Z jog keys, and move the laser scan
line to the 2nd reference mark. Again, make sure that the TCP is NOT on the joint line. It
should be offset by different amounts and directions compared to Pair 1-Point 1. For the
calibration to be accurate, it is important that the scan line of the Servo-Robot sensor is
positioned exactly on the reference mark.
16. Move the cursor to Pair 1 Point 2.
17. Press F5, RECORD to record Pair 1-Point 2.
18. See Figure 1-9 for an illustration of teaching reference points for Pair 2.

1-19

1. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR

A-83971

Figure 1-9. Teaching Pair 2

19. Move the cursor to reference pair 1 point 1. Press F4, MOVE TO. This will move the robot
back to the position you recorded to Pair 1 point 1. Shift the robot position in X, Y and Z
directions, and add some rotation about the TCP.
Note Make sure that the TCP is NOT on the calibration joint line. If Pair 1-Point 1 was to
the left, this time move it to the right. If it was high, make the new position low. The
laser scan line must cross exactly on the reference mark.
20. Move the cursor to reference pair 2, point 1. Press F5, RECORD to record Pair 2, Point 1.
21. Jog the robot in WORLD mode, using only the x, y & z jog keys, and move the laser scan
line to the 2nd reference mark.
Note Make sure that the TCP is NOT on the calibration joint line. It should be offset by
different amounts or directions relative to Pair 2-Point 1. The scan line must cross exactly
on the reference mark.
22. Move the cursor to reference Pair 2, Point 2.
23. Press F5, RECORD to record Pair 2-Point 2.
24. See Figure 1-10 for an illustration of teaching reference points for Pair 3.
Figure 1-10. Teaching Pair 3

1-20

1. ADAPTIVE WELDING WITH SERVOROBOT SENSOR


25. Move the cursor to reference pair 1, point 1. Press F4, MOVE_TO
26. Change the teach pendant jogging coordinate mode to TOOL.
27. Rotate the robot about the TCP around the Y and Z axes by +5 to +10 degrees.
28. Change the teach pendant jogging mode back to WORLD.
29. Jog the robot using only the x, y and z jogging keys to place the laser scan line on the 1st
reference mark while including new offsets in the x, y and z directions. The laser scan line
must cross exactly on the reference mark.
30. Move the cursor to reference Pair 3, Point 1.
31. Press F5, RECORD to record Pair 3-Point 1
32. Jog the robot using ONLY the x, y & z jog keys, and move the laser scan line to the 2nd
reference mark. It should be offset by different amounts or directions compared to Pair 3Point 1. As before, the scan line must cross exactly on the reference mark. Record Pair 3Point 2.
33. Move the cursor to reference pair 3, point 2. Press F5, RECORD to record Pair 3, Point 2.
34. See Figure 1-11 for an illustration of teaching reference points for Pair 4.
Figure 1-11. Teaching Pair 4

35. Move the cursor to reference pair 1, point 1. Press F4, MOVE_TO
36. Change the teach pendant jogging coordinate mode to TOOL.
37. Rotate the robot about the Y and Z axes of the TCP by -5 to -10 degrees.
38. Change the teach pendant jogging mode back to WORLD.
39. Jog the robot using only the x, y and z jogging keys to place the laser scan line on the 1st
reference mark while including new offsets in the x, y and z directions. The laser scan line
must cross exactly on the reference mark.
40. Move the cursor to Reference pair 4, point 1. Press F5, RECORD to Record Pair 4-Point 1
41. Jog the robot using ONLY the x, y & z jog keys, and move the laser scan line to the 2nd
reference mark. It should be offset by different amounts or directions compared to Pair 4Point 1. As before, the scan line must cross exactly on the reference mark.
42. Move the cursor to Reference Pair 4, Point 2.
43. Press F5, RECORD to record Pair 4-Point 2

1-21

1. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR

A-83971

Note: These last eight positions must be taught within the camera's field of view and with
the laser scan line placed exactly on the reference marks. To check whether the joint can
be found for any reference, move the robot to the reference position, then select and run
the SEARCH program. When the SEARCH.TP program runs, it should be able to find
the joint location for all eight reference positions. If the SEARCH.TP program runs
successfully, the joint can be found.
Warning
In the next step, the robot will move automatically to the points you taught.
To stop the robot immediately any time during the Calibration Routine,
release the DEADMAN switch or press the EMERGENCY STOP button.
44. To run the calibration routine, jog the robot away from the calibration joint, near and
above Reference Point 1.
a.

With the teach pendant enabled, make sure the robot is not in a PAUSE state or
faulted and set the desired override speed. (Usually 50% or less.)

b.

Hold the SHIFT button down and press F3, EXEC. Keep the SHIFT key held down.

c.

The robot will move between the pairs of points. At each position the camera will
search for the joint. When the routine is complete, a message will be shown on the
teach pendant and the program state will show "ABORTED". The new camera frame
values will be shown at the top of the screen. Write down these values for future use.

Verify the Sensor Frame


1.

1.3.8

To verify the sensor frame, move the robot to any of the reference points.
a. Run the SEARCH.TP program.
b. Move the robot slowly to position register (PR[1]) used in SEARCH.TP to record
the joint location.
The TCP should be exactly in the joint.

Setting Up the Sensor System


Before using the Servo-Robot Sensor, you must set sensor system parameters correctly.
Table 1-4 lists the Servo-Robot sensor setup items you must define. Refer to Section 1.7 for
information about RPM. Refer to Section 1.6.7 for more information on automatic error
recovery.

Table 1-4. Servo-Robot Sensor Setup items

1-22

ITEM

DESCRIPTION

Use Rotator

The servo-robot sensor does not support a sensor rotator, so this


item should be FALSE.

Track Fail DO

This item defines the Digital Output that will be turned ON when
the Track Failure occurs. The Track Failure is defined as one of the
following alarms MIGE-027 Can't detect joint continuously MIGE034 Path points too close MIGE-036 Track calculation fault MIGE037 No MIG EYE data in buffer MIGE-038 Can't calculate track
offset MIGE-039 Offset is too large. A setting of zero disables this
feature. (RESET will turn this output OFF)

1. ADAPTIVE WELDING WITH SERVOROBOT SENSOR


ITEM

DESCRIPTION

Search Fail DO

This item defines the Digital Output that will be turned ON when a
Search error occurs. A setting of 0 disables this feature. (RESET
will turn this output OFF)

Laser Status DO

This item defines the Digital Output that will be turned ON when
the Laser Status DI is ON and ready.

Laser Status DI

This item defines the Digital Input that will be turned on when the
Servo-Robot sensor is on.

Track Cir Axis Num

This item specifies any auxiliary axis used to rotate the work piece
when stationary tracking is executed. If the first axis in auxiliary
axis setup rotates the work, set this item 1. The value of this item
can be 1, 2 or 3. NOTE: Adaptive Welding currently does not
support stationary tracking

Record Pitch for RPM This item specifies the record pitch for Root Path Memorization
function (RPM). The unit of this setting is decided in the RECORD
PITCH MODE FOR RPM VARIABLE. The minimum value is
3mm or 150msec.
Record Pitch Mode
RPM

This item specifies the unit of setting of RECORD PITCH FOR


RPM. The mode is selected by length (mm) or time (msec) by the
function key.

Joint ID for Laser ON This item specifies the schedule number used for turning on the
laser during search. This is not currently used.
Tracking Error
Recovery

This item enables sensor error recovery when a sensor error occurs.

Procedure 1-6 Setting the Servo-Robot Sensor


Steps
1.

Press MENUS.

2.

Select SETUP.

3.

Press F1, [TYPE].

4.

Select Sensor. You will see a screen similar to the following.


SETUP SERVO ROBOT
1 Use rotator
2 Track fail DO
3 Search fail DO
4 Laser status DO
5 Laser status DI
6 Track cir axis num
7 Record pitch for RPM
8 Record pitch mode for RPM
9 Joint ID for laser ON
10 Tracking error recovery

1/10
[FALSE ]
[
0]
[
0]
[
0]
[
0]
[
1]
[ 10.0]
[mm
]
[
1]
[Enable]

1-23

1. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR

5.

A-83971

Select each item and set it as desired.

1.4

SENSOR DATA AND STATUS

1.4.1

Overview
To perform seam tracking and adaptive welding using the Servo-Robot sensor, you must set
up the sensor schedules properly. This section describes the sensor data (schedules) and
sensor status information.

1.4.2

Sensor Schedule Setup


The sensor schedule determines the parameters used to search and track. You must set up a
sensor schedule before you use the sensor. A sensor schedule contains items that define
searching and tracking parameters.
Figure 1-12 shows an example sensor schedule LIST screen. Figure 1-13 shows an example
sensor DETAIL screen, which displays the parameters for each schedule. Refer to Table 1-5
for a description of the schedule items.

Figure 1-12. Sensor Schedule LIST Screen

SERVO ROBOT Sch.


1/10.
Trk Jnt_Num
1
1
2
1
3
1
4
1
5
1
6
1
7
1
8
1
9
1

1-24

Srch Jnt_Num
1
1
1
1
1
1
1
1
1

Times
1
1
1
1
1
1
1
1
1

1. ADAPTIVE WELDING WITH SERVOROBOT SENSOR


Figure 1-13. Sensor Schedule DETAIL Screen

SERVO ROBOT Sch.


1/18.
1 Servo Robot Schedule:1\ [********]
Tracking Setup
2 SR Track Joint Num
3 Tracking Type
4 Motion Sensitivity
5 Y-Bias (mm)
6 Z-Bias (mm)
7 Stationary Track Frame
8 Tack Avoidance
9 Tack Threshold(mm)
10 Tack Length (mm)
Search Setup
11 SR Search Joint Num
12 Search Type
13 Detection Count
14 Retry Count
15 Retry Direction
16 Retry Distance (mm)
17 Y-Bias (mm)
18 Z-Bias (mm)

1
Standard
3
0.00
0.00
0
Disable
2.00
40.00
1
Position
1
0
X
3.0
0.00
0.00

1-25

1. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR

A-83971

Table 1-5. Sensor Schedule Items

ITEM

DESCRIPTION

Servo-Robot
This item identifies the sensor schedule and provides an area in
Schedule: [Comment] which to add a comment for the schedule.
SR Track Joint Num

This item selects the joint to be detected for tracking from the
Servo-Robot joint library.

Tracking Type

This item specifies the type of tracking that will be performed:


STANDARD tracking or STATIONARY tracking. By default,
tracking type is set to STANDARD. Stationary tracking refers to
tracking an object that is being rotated by an extended axis.
Currently, only STANDARD tracking is supported.

Motion Sensitivity

This item specifies how reactive the robot motion system will be to
sensor data. A low value of motion sensitivity provides a slow
motion response, large filtering buffer, and so forth.
High values for motion sensitivity might be potentially unstable, but
are very reactive to sensor data.
A value of 1 is least sensitive, 5 is most sensitive. The default value
is 3.
Motion sensitivity determines the motion buffer distance and the
number of consecutive failed scans allowed before the robot stops
tracking.

Y Bias (Track)

This item adds an offset to the Y value of the found joint location in
the sensor frame. This is used to obtain proper alignment of the
welding wire to the joint.

Z-Bias (Track)

This item adds an offset to the Z value of the found joint location in
the sensor frame. This is used to obtain proper location of the
welding wire in the joint.

Stationary Track
Frame

Stationary tracking is not currently available.

Tack Avoidance
Default: FALSE

Tack avoidance is not currently available.

Tack Threshold

Tack avoidance is not currently available.

Tack Length
Default: 0 mm
Range: 0-500 mm

Tack avoidance is not currently available.

SR Search Joint Num This item selects the joint number from the Servo-Robot's joint
library for searching purposes.
1-26

1. ADAPTIVE WELDING WITH SERVOROBOT SENSOR

1.4.3

ITEM

DESCRIPTION

Search Type

Defines the type of searching. There are two kinds of search:

Position search calculates a "real position" in space to which


the robot can move.

Offset search provides an incremental value that is used to


offset positions in a program. Refer to Section 1.6.4 for more
information about the types of searching.

Detection Count

Specifies the number of joint detections to be executed per one


Sensor Search Point instruction. The recommended detection count
is 3.

Retry Count
Range: 0-5

Specifies the number of retry motions that will automatically be


performed. If the value is 0 , the joint will only be searched in one
location.

Retry Direction

Defines the direction that the robot will move if Retry Count is
greater than zero and a search fails. The robot moves the amount
indicated by Retry Distance and in the direction indicated by Retry
Direction : x, -x, y, -y, z, -z in the sensor frame.

Retry Distance

Specifies the distance the sensor moves before the search is tried
again. Distance must be greater than 0 to have motion occur. It is
recommended that you use 3 mm for the Retry Distance .

Y-Bias (Search)

Adds an offset to the Y value of the found joint location in the


sensor frame. This is used to obtain proper alignment of the welding
wire to the joint.

Z-Bias (Search)

Adds an offset to the Z value of the found joint location in the


sensor frame. This is used to obtain proper location of the welding
wire in the joint.

Motion Sensitivity
The motion control software uses a ratio of leading and trailing data to calculate the offset to
planned motion. This determines how quickly sensor offsets are applied during motion.
The data in the motion buffer distance is applied based on motion sensitivity setting. See
Figure 1-14 .

1-27

1. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR

A-83971

Figure 1-14. Track Length and the Ratio Between the Front and the Rear Areas

When the front distance in the motion buffer distance is short, a track fault can be generated
easily, even if the distance of the motion buffer distance is long.
The ratio between the front and the rear distance has been predetermined for each sensitivity
level. This ratio also determines the maximum number of consecutive failed scans and the
length of the motion buffer. The appropriate system variable is set automatically according to
the Motion Sensitivity item in the sensor schedule.
When Motion Sensitivity is set to a low value, the distance of the motion buffer is long, the
ratio of front to rear area is weighted to the rear data, and the maximum number of
consecutive failed scans is higher. The low sensitivity, will use the data from many scans,
causing the system to react slower to the sensor offset information. High sensitivity uses less
rear data and does not allow as many lost scans. The reaction to joint location changes will
be much quicker.
The ratio is set using the data shown in Table 1-6 .

1-28

1. ADAPTIVE WELDING WITH SERVOROBOT SENSOR


Table 1-6. Ratio Settings

Motion
Sensitivity

Front : Rear

7:18

7:13

7:8

5:5

4:4

Motion buffer 25
distance (mm)

20

15

10

Number of
consecutive
failed scans

11

Tracking errors provide HELP messages that indicate why a tracking failure occurred. If, for
example, the cause is lost data scans, then the motion sensitivity should be decreased, or the
detection sensitivity changed to improve joint detections.
Use Procedure 1-7 to set up a sensor schedule.
Procedure 1-7 Setting Up a Sensor Schedule
Steps
1.

Press MENUS.

2.

Select DATA.

3.

Press F1, [TYPE].

4.

5.

Select Sensor Sched. The Sensor Schedule LIST screen or DETAIL screen will be
displayed. All of the items shown on the Schedule LIST screen are also included in the
DETAIL screen for each schedule.
If F3, LIST, is displayed, press it to display the following screen.
SERVO ROBOT Sch.
1/10 Trk Jnt_Num
Times
1
2
3
4
5
6
7
8
9

6.

1
1
1
1
1
1
1
1
1

1
1
1
1
1
1
1
1
1

Srch Jnt_Num

1
1
1
1
1
1
1
1
1

To display the items in the DETAIL screen , press F3, DETAIL. You will see a screen
similar to the following.

1-29

1. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR

A-83971

SERVO ROBOT Sch.


1/18 1 Servo Robot Schedule:1
[********]
Tracking Setup
2 SR Track Joint Num
3 Tracking Type
4 Motion Sensitivity
5 Y-Bias (mm)
6 Z-Bias (mm)
7 Stationary Track Frame
8 Tack Avoidance
9 Tack Threshold(mm)
10 Tack Length (mm)
Search Setup
11 SR Search Joint Num
12 Search Type
13 Detection Count
14 Retry Count
15 Retry Direction
16 Retry Distance (mm)
17 Y-Bias (mm)
18 Z-Bias (mm)

7.
8.

1.4.4

1
Standard
3
0.00
0.00
0
Disable
2.00
40.00
1
Position
1
0
X
3.0
0.00
0.00

Move the cursor to each item and set it as desired.


To copy data in one schedule to another, press F2, COPY, and specify the necessary
information.

Sensor Schedules
The default number of sensor schedules is ten. The number of schedules can be increased to
255. If the number of schedules is reduced, the schedule data is erased accordingly. Use
Procedure 1-8 to change the number of sensor schedules.

Procedure 1-8 Changing the Number of Sensor Schedules


Steps

1-30

1.

Press MENUS.

2.

Select SYSTEM.

3.

Press F1, [TYPE].

4.

Select Variables.

5.

Move the cursor to $AVST_JNTNUM.

6.

Change the value to the number of sensor schedules you want.

7.

Turn off the controller.

1. ADAPTIVE WELDING WITH SERVOROBOT SENSOR


8.

1.4.5

Perform a Controlled start.

Detection Log
The detection log is a screen where the sensor reports the results of every data scan from the
sensor, either from searching or tracking. This is useful while setting up a production job or
troubleshooting a search or tracking failure.
Detection Data
If a tracking error has occurred due to detection problems, it might be necessary to determine
the point in the detection log data that corresponds to the current tracking position. For
detection data at the current TCP location, you must look at approximately 50 mm of scans
from number 1 in the detection log. The exact value is given by the sensor lead distance,
which is the distance between the TCP and the laser scan.

Figure 1-15. Detection Data Equation

Sampling rate is determined (in milliseconds) by the system variable


$SR_SETUP.$update_time. Sampling rate is calculated using the equation shown in Figure
1-16 .
Figure 1-16. Sampling Rate Equation

An example of the detection formula is shown in Figure 1-17 .


Figure 1-17. Example Detection Data Calculation

Review the detection data and all preceding data to diagnose the problem. Also, observe the
joint and TCP to determine if the appearance of the joint is the cause of the problem.
For the example calculation, the fault occurs at or near data item 25 in the detection log.
1-31

1. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR

A-83971

The detection log contains 200 detections from the sensor. Table 1-7 lists and describes each
item on the detection log. Use Procedure 1-9 to display the detection log.
Table 1-7. Detection Log Data

DETECTION LOG DESCRIPTION


DATA
Item Number

This item indicates the sequence of data input to the screen. The top,
number 1, is the newest data. The bottom, number 200, is the oldest
data. New data that comes into the detection log is displayed at the
top and old data at the bottom is discarded.

Code xxx

This item indicates information about an individual data scan. The


first digit indicates a detection code. For example, 0 means the
sensor locates the joint properly, 3 means incorrect sensor data, and
4 means insufficient good sensor data. The second character
indicates the data type, as follows:

S = Search

T = Track

C = Cleared data
The last digit 0 is unused. For example, 0T indicates a
successful track data.

X / Y / Z / Gap

The data shown under the X, Y, Z, and Gap columns indicate the
calculated values for the joint that was scanned.

X, Y, and Z indicate the calculated positional difference from


the sensor frame origin to the actual joint location.

The gap value is measured by the sensor in mm.

Procedure 1-9 Displaying the Detection Log


Steps
1.

Press MENUS, and then select Status.

2.

Press F1, [TYPE], and then select Sensor. You will see a screen similar to the following.
STATUS
CODE
1 0T0
2 0T0
3 0T0

Detect Log
X
Y
0.00
0.00
0.00
0.00
0.00
0.00

Z
GAP
0.00 0.00
0.00 0.00
0.00 0.00

Note Keep in mind the following information:

1-32

The detection log will not display the data while the sensor is actively gathering data
(for example, during tracking).
When the detection log is displayed, any new data is not automatically updated to
the screen. To update the information on the screen, display any other screen and then
re-display the detection log.
In the detection log, detection code = 0 means the sensor located the joint properly.
In the detection log, data type S = Search, T = Track, C = Cleared.

1. ADAPTIVE WELDING WITH SERVOROBOT SENSOR


Caution
There is no confirmation when you clear the detection log. After the log
has been cleared, it cannot be restored.
3.
4.

To clear the entire detection log , press SHIFT and F3, CLEAR.
To display HELP , move the cursor to the desired detection index, and press F5, HELP.
See the following screen for an example.
$DTCT_CODE = 4
Insuficient good data.
STATUS Detect Log
Code
X
Y
2 0T 0 14.25 19.23
3 4T 0 44.78
-.79
4 4T 0 44.78
-.79
5 4T 0 44.78
-.79
6 4T 0 44.78
-.79
7 4T 0 44.78
-.79

Z
Gap
-33.6 11.48
139.9 0.00
139.9 0.00
139.9 0.00
139.9 0.00
139.9 0.00

When you are finished, press the PREV key to display the main detection log screen.

1.5
SETTING WELD PROCESS DATA FOR MULTI-PASS
ADAPTIVE WELDING
When the Servo-Robot option is installed, all data required for Multi-Pass Adaptive Welding
is contained within the teach pendant program. This data includes the nominal weld, weave,
run-in, burnback, and crater fill schedules, the offsets for each pass, and the joint geometry
parameters and process limits required for adaptive welding. This data and the programming
method described in Section 1.5.1 and Section 1.5.2 enable you to perform Multi-Pass
Adaptive Welding. This section describes how to create and modify the data in a teach
pendant program.

1.5.1

Setting Up Multi-Pass Data


The nominal values for weld, weave, run-in, burnback, and crater fill schedules for each pass
must be set. This data will be used when the weld joint is nominal and there is no variation in
the joint geometry along the weld path. Use Procedure 1-10 to set up multi-pass data.
Note: Be aware of the following with regard to Procedure 1-10 .
Process parameter names for welding equipment vary based on the welding power supply
and the weld process you have selected. These are column headers in many of the tables.
Adaptive parameters dealing with robot speed will have the units in the Weld System screen
in the Setup menu set to Weld Speed Function - Default Unit.
Adaptive parameters dealing with wire feed speed will have the units in the Weld Equipment
screen in the Setup menu set to Wire feed speed units.
1-33

1. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR

A-83971

Procedure 1-10 Setting Up Multi-Pass Data


Steps
1.

Create a new program or move the cursor to the program for which you want to set process
data. If you are editing an existing program, you will see a screen similar to the following. If
you are creating a new program, you will see a screen similar to the one shown in Step 2 .
Select
No.
1
2
3
4
5
6
7
8
9

2.

1032988 bytes free


Program name
Comment
-BCKEDT[
LASON
[
PART01
[
PART01A
[
SEARCH
[
TEST
[
TESTMAIN
[
WELD01
[
WELD01A
[

9/9
]
]
]
]
]
]
]
]
]

Press F2, DETAIL. You will see a screen similar to the following.
Program detail
1/5
Creation Date:
Modification Date:
Copy Source:
[
Positions: TRUE Size:

2-Feb-xxxx
2-Feb-xxxx
]
2848 Byte

1 Program name:
[WELD01A ]
2 Sub Type:
[None
]
3 Comment:
[
]
Group Mask:
[1,*,*,*,*]
4 Write protect:
[OFF
]

Press F3, NEXT. You will see a screen similar to the following.

1-34

1. ADAPTIVE WELDING WITH SERVOROBOT SENSOR


Program detail
1/12
Program name: WELD01
Last Pass: 0
Status: ********
Multi-pass Data:
1 Number of passes
0
2 Weld schedules
<*DETAIL*>
3 Weave schedules
<*DETAIL*>
4 Multi-pass offsets
<*DETAIL*>
5 Run-in schedules
<*DETAIL*>
6 Burnback schedules
<*DETAIL*>
7 Crater fill Schedules
<*DETAIL*>

3.

Enter the number of passes in the weld.


Note: You must use one teach pendant program per weld. All of the passes of the weld
will use the same program, as described in Section 1.8.
When a program is first created, the number of passes is 0 by default. When you enter the
number of passes, the default schedules and offsets for each pass are created.
If you increase the number of passes in an existing program (weld), the data for additional
passes is created. Similarly, if you decrease the number of passes, the data for those passes is
deleted. Note that the size of the teach pendant program increases by 224 bytes for each
additional pass.

4.

To view and edit the data, move the cursor to the item and press ENTER.

5.

To view the weld schedules,


a.

Move the cursor to Weld schedules and press ENTER. You will see a screen similar
to the following.
In the screens shown below, one line of data corresponds to each pass. Note that the
actual parameters (such as trim or volts) depend on the equipment that is currently
selected.

Program detail
Weld schedules
Pass Trim
IPM
IPM
1 85.0 300.0 40
2 85.0 300.0 35
3 85.0 300.0 35
4 85.0 300.0 35
5 85.0 300.0 35
6 85.0 300.0 35
b.
6.

1/6

Press F4, EXIT, or PREV to return to the Multi-pass Data List.

To view the weave schedules,


a.

Move the cursor to Weave schedules and press ENTER. You will see a screen
similar to the following.
1-35

1. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR

A-83971

Program detail
Weave schedules
1/6
Pass FRE(Hz) AMP(mm) R_DW(sec) L_DW(sec)
1
5.0
2.0
.100
.100
2
1.0
4.0
.100
.100
3
1.0
4.0
.100
.100
4
1.0
4.0
.100
.100
5
1.0
4.0
.100
.100
6
1.0
4.0
.100
.100

b.
7.

Press F4, EXIT, or PREV to return to the Multi-pass Data List.

To view the Multi-Pass offsets, move the cursor to Multi-pass offsets and press ENTER.
You will see a screen similar to the following.
Program detail
Multi-pass offsets
1/6
Pass X(mm) Y(mm) Z(mm) Wrk(deg) Trv(deg)
1
0.0 0.0 0.0
0.0
0.0
2
0.0 0.0 0.0
0.0
0.0
3
0.0 0.0 0.0
0.0
0.0
4
0.0 0.0 0.0
0.0
0.0
5
0.0 0.0 0.0
0.0
0.0
6
0.0 0.0 0.0
0.0
0.0

In addition to the x, y, and z offsets, you can specify offsets to work and travel angles.
These offsets are with respect to the tracking pass. These offsets will be applied when the
multi-pass offset instruction is used in the teach pendant program, as described in Section
1.5.2. Refer to Multi Pass documentation for the definition of the offsets.
Usually pass 1 is the tracking pass. Therefore, the offsets specified for pass 1 are never
used. However, if offsets are needed for the first pass, specify the y and z-bias values in the
track schedule.
8.

To view the run-in schedules, move the cursor to Run-in schedules and press ENTER.
Each pass can have different run-in schedules as specified in the following screen. Refer to
Arc Tool manual for more information on run-in.
Program detail
Run-in schedules
Pass Trim
IPM
1 85.0 300.0
2 85.0 300.0
3 85.0 300.0
4 85.0 300.0
5 85.0 300.0
6 85.0 300.0

1-36

1/6
Sec
0.00
0.00
0.00
0.00
0.00
0.00

1. ADAPTIVE WELDING WITH SERVOROBOT SENSOR


9.

To view the burnback schedules,


a.

Move the cursor to Burnback schedules and press ENTER. Each pass can have
different burnback schedules, as specified in the following screen. Refer to Arc Tool
manual for more information on burnback.

Program detail
Burnback schedules
Pass Trim
IPM
Sec
1 85.0
0.0 .10
2 85.0
0.0 .10
3 85.0
0.0 .10
4 85.0
0.0 .10
5 85.0
0.0 .10
6 85.0
0.0 .10

b.

1/6

Press F4, EXIT, or PREV to return to the Multi-pass Data List.

10. To view the crater fill schedules,


a.

Move the cursor to Crater Fill Schedules and press ENTER. Each pass can have
different crater fill schedules, as specified in the following screen.

Program detail
Crater fill schedules
1 85.0 300.0 0.00
2 85.0 300.0 0.00
3 85.0 300.0 0.00
4 85.0 300.0 0.00
5 85.0 300.0 0.00
6 85.0 300.0 0.00

b.

1/6

Press F4, EXIT, or PREV to return to the Multi-pass Data List.

11. To display the schedule DETAIL screen for the pass the cursor is pointing to, press F2,
DETAIL. See the following screen for an example.
Program detail
Weld schedule

1
2
3
4
5

Pass Number: 1
Program select: 1 [
Command Trim
Command Wire feed
Travel speed
Delay Time

1/6

]
85.00
300.00
40
0.00

Trim
IPM
IPM
sec

12. To display the schedule DETAIL for another pass , press F2, PASS, and enter the pass
number. The data for the new pass will be displayed.
1-37

1. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR

A-83971

13. To view the schedule LISTING screen, press F4, EXIT, and the schedules for all of the
passes will be displayed.
14. To copy the data for the current pass to another pass , press NEXT, >, and then press
F2, COPY. The current pass is the one to which the cursor is pointing.
15. To restore the default schedule for the current pass , press NEXT, >, and then press F3,
CLEAR. The default schedule depends on the equipment selected.
16. To change the display between different screens , press F1, [TYPE], and select the screen
from the [TYPE] menu. See the following screen for an example.
1
2
3
4
5
6

1.5.2

Weld
Weave
Offsets
Run-in
Burnback
Crater fill

Setting Up the Adapt Data


You will need to set up the data required for adaptive weaving and welding. This involves
selecting the joint and entering the nominal values and limits for joint data such as gap and
area. You can also set up the ranges for weld parameters such as voltage and wire feed speed,
and weave parameters such as amplitude and frequency. Refer to Procedure 1-11 .
Adaptive welding is performed using an algorithm specified in a KAREL program. This
mechanism allows you to specify different algorithms for different joints.
You must have the KAREL program (.PC file) available to perform the adaptive algorithm.
This KAREL program takes the joint geometry data provided by the sensor as inputs and
calculates the new weld and weave parameters as the robot moves along the length of the
weld. This KAREL program must be created and loaded on the controller as explained in
Section 1.8
In addition to selecting the direct variables such as the gap, mismatch or area of the joint, you
can select a variable derived from the break points of the joint you want to weld. For the
definition of the joint geometry and break points for the joints supported by the Servo-Robot
Sensor, refer to the Servo-Robot VISUS Manual .
Example
The example in Figure 1-18 shows how to select a derived variable from the joint definition.
The V-groove joint has six break points (B0 to B5) as defined in Figure 1-18 .

1-38

1. ADAPTIVE WELDING WITH SERVOROBOT SENSOR


Figure 1-18. V Groove Joint with Six Breakpoints

The sensor provides the break point data in addition to gap, area, and mismatch. In most
cases, the direct variables -- gap, area, and mismatch -- are sufficient to perform adaptive
welding. However, in addition to the direct variables, you can define and use derived
variables, S1 to S5, for adaptive welding. The three possible alternatives for S1 to S5 are as
follows:

Distance between any two break points (B1-B2*, for example)


Y-distance between any two break points (B1-B2y, for example)
Z-distance between any two break points (B1-B2z, for example)

Procedure
Use Procedure 1-11 to set up the joint data and limits.
Note Please be aware of the following with regard to Procedure 1-11 .
Process parameter names for welding equipment vary based on the welding power supply
and the weld process you have selected. These are column headers in many of the tables.
Adaptive parameters dealing with robot speed will have the units in the Weld System screen
in the Setup menu set to "Weld Speed Function - Default Unit."
Adaptive parameters dealing with wire feed speed will have the units in the Weld Equipment
screen in the Setup menu set to Wire feed speed units."
Procedure 1-11 Setting up the Adaptive Data
Steps
1.

Press SELECT, and move the cursor to the program for which you want to set joint data and
limits.

2.

Press F2, DETAIL.

3.

Press F3, NEXT, until the following screen is displayed.

1-39

1. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR

Program detail
Adapt data
Program name: WELD01
1
2
3
4
5

1/5

Joint type:
Joint data & limits:
Proc limits & constants:
Pass specific data:
Algorithm .PC file:

CORNER
<*DETAIL*>
<*DETAIL*>
<*DETAIL*>
[*uninit*]

4.

Press F4, [CHOICE], and select the joint type.

5.

Set the joint data and limits:


a.

A-83971

Move the cursor to Joint data & limits and press ENTER. You will see a screen
similar to the following.
Note: This screen allows you to set the nominal, low, and high values for the joint
geometry data. You can also configure the derived variables S1-S5 and set the
nominal, low, and high values for these as well. You can also choose to post an error
or warning if the joint geometry (as seen by the sensor) is outside of the high/low
limits set.

Program detail
Joint data & limits
Variable Nominal
(mm)
1 Gap
0.0
2 Mismatch
0.0
3 Area(mm^2) 0.0
4 S1: **- *** 0.0
5 S2: **- *** 0.0
6 S3: **- *** 0.0
7 S4: **- *** 0.0
8 S5: **- *** 0.0
b.

Low
(mm)
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0

1/8
High Error
(mm)
0.0 NONE
0.0 NONE
0.0 NONE
0.0 NONE
0.0 NONE
0.0 NONE
0.0 NONE
0.0 NONE

Set the nominal, low, and high values for the joint parameters.
These values are to be used by the adaptive algorithm for changing weld and weave
parameters. Some of the parameters listed in the above screen might not be
meaningful for the joint type selected. For example, there is no area value for a lap
joint.
Refer to the Servo-Robot VISUS Manual to determine the joint data available for
each joint type supported, and use only the available data.

c.

To set the derived variables S1 - S5, move the cursor to the corresponding line and
select the first and second break points.
Press F4, CHOICE, to select a breakpoint from the sub-window.
Make sure that the break points selected are available for the joint type.

1-40

1. ADAPTIVE WELDING WITH SERVOROBOT SENSOR


d.

Select *, y, or z in the third column for distance type.

e.

Move the cursor to the Error column and set the error severity.
Where the joint data falls outside the limits set in the above screen, an error or
warning can be posted. You have four choices for error severity: NONE, WARN,
PAUSE, and ABORT.
For example, if the gap values are out of range, "MIGE-122, Gap value is out of
range" is posted if the severity is set to something other than NONE.
When the severity is NONE, range checking is not performed. When the severity is
WARN, the error message is posted as a warning only and the program execution is
not affected. Similarly, when the severity is PAUSE or ABORT, the program
execution is paused or aborted respectively.
These error messages can be used to identify and discard joints that cannot be
welded with acceptable quality. When the joint data is within the specified limits, the
adaptive algorithm should compute the process parameters to account for the joint
variation. It is expected that the adaptive algorithm works in the entire range of the
joint data specified in the above screen. Refer to Section 1.8 for a description of the
adaptive welding algorithm.

f.
6.

When you are finished setting data, press F4, EXIT, or PREV to display the Adapt
data screen.

Set the process limits and constants:


Note: The data set in this screen can be used in the adaptive algorithm, for example, to
make sure that the process changes calculated are acceptable. The global and passspecific constants can be used to tune the adaptive welding algorithm without having to
change the KAREL program itself.
a.

Move the cursor to Proc limits & constants and press ENTER. You will see a screen
similar to the following.

1-41

1. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR

A-83971

Detail Weld Sch


Proc limits & constants
1/13
Weld Parameters
Low
High
1 Voltage
20.0
20.0
Volts
2 Wire feed
200.0 200.0 IPM
3 Travel speed 20
20
IPM
Weave Parameters
Low
High
4 Frequency
1.0
1.0
Hz
5 Amplitude
4.0
4.0
mm
6 Right dwell .100
.100
sec
7 Left dwell
.100
.100
sec
Global Constants
8 C1: [
]
0.00
9 C2: [
]
0.00
10 C3: [
]
0.00
Pass Specific Constants
11 CP1: [
]
12 CP2: [
]
13 CP3: [
]

b.

Set the lower and upper limits for weld and weave parameters.
These limits are used in the adaptive algorithm file.
In addition to process data, you can use a total of six constants in the adaptive
algorithm. Constants C1, C2, and C3 are global and have the same value for all
passes.
Constants CP1, CP2, and CP3 are pass-specific and can have different values for
each pass. The actual values can be entered in the next screen.

c.
d.
7.

When you are finished setting data, press F4, EXIT, or PREV to display the Adapt
data screen.

Set the pass specific data:


a.

1-42

If desired, modify the names for the Global and Pass Specific Constants.

Move the cursor to Pass specific data and press ENTER. You will see a screen
similar to the following.

1. ADAPTIVE WELDING WITH SERVOROBOT SENSOR


Detail Weld Sch
Pass specific data
Pass CP1
CP2
1 1.00 1.00
2 0.00 0.00
3 0.00 0.00
4 0.00 0.00
5 0.00 0.00
6 0.00 0.00

b.

CP3
0.00
0.00
0.00
0.00
0.00
0.00

WELD
DISABLE
DISABLE
DISABLE
DISABLE
DISABLE
DISABLE

1/6
WEAVE
DISABLE
DISABLE
DISABLE
DISABLE
DISABLE
DISABLE

Set the pass specific constants CP1, CP2, & CP3. These values can be used in the
adaptive algorithm to tune the algorithm differently for each pass. You can also
ENABLE or DISABLE adaptive welding and weaving from this screen.
If you ENABLE Adaptive WELD for a particular pass, on that pass, changes to the
weld parameters such as voltage, wire feed, and travel speed will be applied as
calculated by the adaptive algorithm.
Similarly, if Adaptive WEAVE is enabled, changes to the weave parameters such as
amplitude and frequency will be applied as determined by the adaptive algorithm.

c.
8.

When you are finished setting data, press F4, EXIT, to display the Adapt data
screen.

Set the algorithm .PC file:


The .PC file is a KAREL program that runs the adaptive algorithm. Refer to Section 1.8 for
a complete description of the adaptive algorithm. You must have a valid KAREL program
(.PC file) loaded on the controller before performing adaptive welding.
The sensor data obtained during tracking is input to the KAREL program, which calculates
the changes required to process parameters based on the sensor data and adaptive data in the
program. The output of the KAREL program is applied to the welder and the robot to change
weld and weave parameters.

1.6

a.

Move the cursor to select one of the ____ALGO.PC algorithm files and press
ENTER.

b.

Move the cursor to select a KAREL program you have written and have previously
loaded.

PROGRAMMING
Several instructions are available that allow sensor functions to be executed from within a
teach pendant program. These instructions are used with the standard Arc Tool instructions,
such as Arc Start, to create programs that search, track and weld.
This section includes information on the following topics.

Sensor searching and tracking instructions


Search and offset programming
Tracking programming

1-43

1. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR

1.6.1

A-83971

Search
The search function is used to find a part prior to starting a weld. Using this information, the
robot can be programmed to properly align the welding wire with the weld joint prior to
starting a weld.
Two types of search output can be calculated:

Position type
Offset type

The OFFSET function is used to correct the wire placement from the result of the SENSOR
SEARCH function. This function can be used with an offset type search routine.
Search Instruction
Listed below are SENSOR SEARCH instructions and descriptions. A standard search routine
consists of a combination of the following instructions:

SENSOR SEARCH START PR[i]


SENSOR SEARCH POINT [i] or SENSOR SEARCH POINT [i] LBL [i]
SENSOR SEARCH END
Warning
During the execution of the search routine, the laser will be operating at
high power levels. DO NOT look directly into the beam path. Direct
exposure can cause damage to your eyes.

A search routine is also used in combination with one or more position instructions to
establish the physical location where the search will be executed.
SENSOR SEARCH START PR[i]
SENSOR SEARCH START is used to identify the location in a program where a search
routine will be started. The Position Register (PR) stores the position or offset data from the
Search Routine.
i = Position register number (Normal range = 1 to 100)
SENSOR SEARCH POINT [i]
SENSOR SEARCH POINT identifies the location in a search routine where the actual
scanning (searching) of the joint occurs. The parameter values used for searching come from
the sensor schedule.
i = Sensor schedule number (Normal range = 1 to 10)
Note If the SENSOR SEARCH fails when this information is used, the program will be
paused on the line that contains the search point instruction.

1-44

1. ADAPTIVE WELDING WITH SERVOROBOT SENSOR


SENSOR SEARCH POINT[i] LBL[j]
If the LBL[j] modifier is added at the end of the SENSOR SEARCH POINT[] instruction,
program execution jumps to LBL[j] when joint detection fails.
If you want to add the LBL[j] modifier, insert a SENSOR SEARCH POINT[] instruction,
move the cursor to the right of the instruction on the same line, press F4, [CHOICE], and
select LBL[].
When the SENSOR SEARCH POINT[ ] LBL[ ] instruction is executed and the joint
detection fails, the following events will occur

If the search retry function is enabled, the robot will continue searching based on the
sensor schedule data.
After all search retries have failed, the program will branch to the LBL[j] instruction
and continue execution.
When the branch to label is executed, the current search routine is disabled as if a
SENSOR SEARCH END has been executed, but no data is calculated.
If a search fail digital output has been assigned, the output is turned ON. Pressing the
RESET key or issuing a SEARCH START command will cause the search fail digital
output to turn OFF.
Program execution continues at the location where the corresponding LBL[j] exists in
the program.

SENSOR SEARCH END


SENSOR SEARCH END is used to identify that the Search Routine is complete. At this
time, the sensor will calculate the positional data and put this data into the position register
identified in the SENSOR SEARCH START instruction.
Including Search Instructions in a Program
Search instructions are in the SENSOR instruction set within the INST submenu. The sensor
instructions are as follows:

1.6.2

SENSOR ON
SENSOR OFF
SEARCH START
SEARCH POINT
SEARCH END
OFFSET START
OFFSET END

Search Schedule
To execute SEARCH function, set schedule data properly. Schedule data is set on the sensor
schedule screen. Refer to Section 1.4 for more information.

1.6.3

Offset Instructions
This section describes the following SENSOR OFFSET instructions.

SENSOR OFFSET START PR[i]


SENSOR OFFSET END
1-45

1. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR

A-83971

SENSOR OFFSET START PR[i]


SENSOR OFFSET START indicates the location in a program where you want to start
applying the offset data calculated from an offset type search routine. This offset is added to
all of the taught weld points that follow to align them with the found location of the joint.
Refer to Section 1.6.4 for more information on offset type search routine. The position
register (PR) is where the offset data is stored.
i = Position Register number
All positions that follow this instruction will be offset by the value in the position register.
This function can only be used with an offset type Search routine.
SENSOR OFFSET END
SENSOR OFFSET END indicates the location in a program where the offset is no longer
required. This offset is added to the taught weld points to align them with the found location
of the joint. OFFSET END does not change the value in the position register. Therefore, the
offset could be used again.
Including Offset Instructions in a Program
Offset instructions are in the SENSOR instruction set within the INST submenu.

1.6.4

Search Programming
Sensor search programming is used to find a part prior to starting a weld. With this search
information, you can program the robot to align the welding wire with the weld joint prior to
starting a weld or starting sensor tracking.
Two types of search output can be calculated when a search routine is executed:

Position type
Offset type

The results of the search are stored in the search instruction position register.
Position Type Search
A position type search is used to calculate a real position in space, which is usually the
location of an Arc Start or TRACK SENSOR[i] instruction. In a position type search, the
sensor records the joint location in a position register if detection is successful. The robot can
then be instructed to move to this position register.
Both the position type and offset type searches use the same program instructions. The
Search Type item in the sensor schedule determines which type of search output will be
calculated.
A position type search uses only a single search point instruction in the search routine.
Note In position-type compensation, the following positional data is set in the position
registers:

1-46

Positional data (X,Y,Z): Cartesian coordinates detected by the sensor


Orientation data (W,P,R): Orientation data at the detection position
Config data: Config data at the detection position

1. ADAPTIVE WELDING WITH SERVOROBOT SENSOR


The detection position is the robot position from where the search routine is executed.

Caution
Since the config data (such as turn numbers) of the detection position is
copied to the PR[], you must use linear or circular moves to the PR[].
Otherwise, if a joint move is executed, unexpected motion might result, if, for
example, turn numbers do not correspond to the shortest distance.

Offset Type Search


An offset type search is used to calculate an incremental displacement of the joint from its
original location. The output of this type of search is a small displacement value (typically 0
to 10 mm in one or more directions) that is used to offset one or more welding positions on a
part.
For example , a 25 mm long weld is to be made that consists of two positions: Arc Start and
Arc End. The sensor is instructed to perform an offset type search at the center of the weld to
determine and correct any lateral shift of the current part relative to the original trained weld
path.
Based on the search, the sensor calculates the joint displacement in the y- and z-directions
from the original joint. The robot can then be instructed to use this offset to displace both the
Arc Start and Arc End positions by the offset amount.
Both the position type and offset type searches use the same instructions in the program. If
one search point is programmed, then only the lateral offset and z offset can be applied to the
weld path.
If two search points are programmed in the search routine, it is assumed that these positions
are on perpendicular weld paths and that the path shifts in the x, y, and z directions.
The sensor schedule determines which type of search will be calculated. Refer to 1.4.2.
Table 1-8. Offset Type Search

Number of Searches in Search Calculated Output


Routine
1

Incremental offset in 2 dimensions, y and z. It is assumed


that the part moves parallel to the original location.

Incremental offset in 3 dimensions. It is assumed that the


part has a 90-degree corner between the two sides being
searched, and that the part moves parallel to the original
location.

Note Offset type data calculated by the search are relative to the sensor frame (translated to
WORLD Frame). Position type data calculated by the search are calculated first relative to
the sensor frame, and then translated into the WORLD frame relative to the TCP.
Example 1-2 contains an example of an offset type search.
1-47

1. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR

A-83971

Example 1-2. Example Offset Type Search

Instruction
1: J P[1] 50% CNT100
2: L P[2] 80mm/sec FINE
3: SENSOR SEARCH START PR[1]
4: SENSOR SEARCH POINT[3]
5: J P[3] 40% CNT100
6: J P[4] 40% CNT100
7: J P[5] 40% FINE
8: SENSOR SEARCH POINT[4]
9: SENSOR SEARCH END
10: SENSOR OFFSET START PR[1]
11: L P[6] 100mm/sec FINE
12: Arc Start[2]
13: L P[8] 25mm/sec CNT100
14: Arc End[2]
15: J P[9] 40% FINE
16: Arc Start[3]
17: L P[10] 25mm/sec CNT100
18: Arc End[3]
19: SENSOR OFFSET END
20: J P[1] 50% FINE

Description
Move to first search position

Move to second search position

Weld first path


Reposition for second path
Weld second path

$MIG_CALFLG System Variable


For the two point offset type search, a system variable is provided for search setup to
determine how the Two Point search calculates the offset of the part plane. This is set at a
Controlled start and is in effect for all two point searches. The values of the variable affect
how the offset is calculated.
When $MIG_CALFLG=1 , the z offset is "z" from the second search, and all points on the
weld path will have the same incremental z added. See Figure 1-19 . This assumes the part
plane will always be parallel to the original.
Figure 1-19. $MIG_CALFLG = 1

If $MIG_CALFLG=2 , the z height is calculated as a frame rotation about the first searched
1-48

1. ADAPTIVE WELDING WITH SERVOROBOT SENSOR


path. $MIG_CALFLG=2 assumes the part plane rotates about the first weld joint. As the
second path is executed, the z height grows uniformly larger. See Figure 1-20 .
Figure 1-20. $MIG_CALFLG = 2

If $MIG_CALFLG=3 , the z height is calculated from the rotation about the first and second
paths. $MIG_CALFLG=3 causes the weld plane to tilt about the trained paths. See Figure 121.
Figure 1-21. $MIG_CALFLG = 3

Search Programming Approach


You can use two methods to program a search:

One search point - position type output or offset type output


Two search points - offset type output only

One Search Point


A search routine with one search point can be either a position type (absolute WORLD
position) or an offset type (incremental y-z offset relative to a trained position). Use the
following guidelines when performing a search using one search point:
1.

Determine whether a position or offset type search is required.


Choose the position search type to find one position in space to which the robot can
move. This is typically the arc start location.
1-49

1. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR

2.
3.
4.

A-83971

Choose the offset search type to offset one or more points in a weld path. This is
typically used for short welds.
Program the desired operation.
Test the program.
Run the program in production.

One Search Point - Position Type Output


One point search (position search type) can locate the weld (track) start position by searching
for the weld joint using search parameters in the specified sensor schedule.
In Example 1-3 , sensor schedule 2 is used after the robot moves to P[1]. The found location
is stored in PR[4], then the robot moves to the position stored in PR[4]. Figure 1-22
illustrates the program example.
Note For this kind of operation, the search type is set to POSITION in the sensor schedule.
Example 1-3. One Position Search - Position Type for Weld Start Position Example

Instruction
Description
1: J P[1] 50% FINE
Move to P[1]
2: SENSOR SEARCH START PR[4] Start Search Routine
3: SENSOR SEARCH POINT[2]
Search joint, use Schedule [2]
4: SENSOR SEARCH END
Stop search routine, calculate pos.PR[4]
5: L PR[4] 50% FINE
Move to PR[4]
6: Arc Start [3]
7: Track SENSOR [2]
8: L P[2] 35mm/sec FINE
9: Arc End[3]
10: Track End
Figure 1-22. One Position Search - Position Type for Weld Start Position

1-50

1. ADAPTIVE WELDING WITH SERVOROBOT SENSOR

One Search Point - Offset Type Output


A search routine with one search point (offset type) is used to find a part that has shifted
parallel to the original location in two dimensions (y and z).
The program examples in Example 1-3 and Example 1-4 are very similar. However, by
changing the search type in the sensor schedule to OFFSET, the system automatically
calculates an offset instead of a position. The calculated offset can then be applied to many
points in the program by using OFFSET START and OFFSET END instructions.
Note: The robot program ( Example 1-3 , for example) should be altered to apply an offset
PR[4] rather than moving to PR[4]. Example 1-4 shows the programming for a five-sided
part identified in Figure 1-23 In this example, P[6] - P[7], P[7] - P[8], and P[9] - P[10] can
use the offset information. It is assumed that the part moves only in the y and z directions
and does not rotate.
Note P[5] -P[6] and P[8] -P[9] still get offset in z.
Example 1-4. Example Program for Offset Type Search with Y Z Output

Instruction
Description
1: J P[1] 100% CNT100
2: J P[2] 100% FINE
3: SENSOR SEARCH START PR[3]
Start search routine
4: J P[3] 40% FINE
Move to first search point P[3]
5: SENSOR SEARCH POINT[1]
Search joint, schedule [1]
6: SENSOR SEARCH END
Stop search routine, calculate offset
7: J P[4] 100% FINE
8: SENSOR OFFSET START PR[3]
Start point for applying offset
9: J P[5] 100% FINE ARC START [1]
10: L P[6] 20mm/sec CNT100
11: L P[7] 20mm/sec CNT100
14: L P[8] 20mm/sec CNT100
15: L P[9] 20mm/sec CNT100
16: L P[10] 20mm/sec FINE ARC END [1]
17: SENSOR OFFSET END
Stop point for Servo Robot offset
18: J P[1] 100% FINE
Note P[1], P[2], and P[4], not shown in Figure 1-23 , are the approach and search points.

1-51

1. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR

A-83971

Figure 1-23. Welded Part with 2-D Offset (One Search Point)

Two Search Points in One Search Routine


A search routine with two search points (offset type) is used to find a part that has shifted
parallel to the original location in three dimensions.
Example 1-5 contains a program example of this kind of search. Figure 1-24 illustrates the
program. For example, by starting with the one-point search program in Example 1-5 , one
position (P[11]) and one SENSOR SEARCH POINT[2] is added to the search routine. The
system will automatically calculate the additional offset to develop an x, y, z offset.
Example 1-5. Example Program for Offset Type Search with X, Y, Z, Output

Instruction
Description
1: J P[1] 100% CNT100
2: J P[2] 100% FINE
3: SENSOR SEARCH START PR[3]
Start search routine
4: J P[3] 40% FINE
Move to first search point P[3]
5: SENSOR SEARCH POINT[1]
Search joint, schedule [1]
6: J P[11] 40% FINE
Move to second search point P[11]
7: SENSOR SEARCH POINT[2]
Search joint, schedule[2]
8: SENSOR SEARCH END
Stop search routine, calculate offset
9: J P[4] 100% FINE
10: SENSOR OFFSET START PR[3]
Start point for applying offset
11: J P[5] 100% FINE ARC START [1]
12: L P[6] 20mm/sec CNT100
13: L P[7] 20mm/sec CNT100
14: L P[8] 20mm/sec CNT100
15: L P[9] 20mm/sec CNT100
16: L P[10] 20mm/sec FINE ARC END [1]
17: SENSOR OFFSET END
Stop point for Servo Robot offset
18: J P[1] 100% FINE
1-52

1. ADAPTIVE WELDING WITH SERVOROBOT SENSOR


Figure 1-24. Welded Part with X,Y, and Z offsets (Two Search Points)

Note P[1], P[2], and P[3] are not shown in Figure 1-24 for clarity.
Note For this search to calculate the xyz offset correctly, segment P[8] - P[9] and segment
P[9] - P[10] must be coplaner and perpendicular.
Note: The first and second searches can be programmed at any position. However, z will be
determined solely by the second search when $MIG_CALFLG=1 and 2. Refer to the
description of the $MIG_CALFLG system variable in Section 1.6.4 .
SEARCH POINT[j] LBL[k] Usage
You can include the LBL[k] option for sensor searches that require specific actions if the
search fails. The instruction execution is identical with or without the LBL[k] option as long
as the search is successful.
If a detection error occurs during the search (the search is not successful), the following
events occur:

If the Retry Count > 0, the robot will move and a new search will be attempted.
After all search retries have failed or if a single search fails when Retry Count = 0, the
program will branch to LBL[k] and continue execution.
The program will not stop with a PAUSE error.
If the branch to label is executed, the current search routine is disabled as if a SEARCH
END has been executed.
Note In the case of a failed search, the position register of the SEARCH START PR[i]
instruction will still contain its previous value.

If a search fail digital output has been assigned, the output is turned ON. Pressing the
RESET key or issuing another SEARCH START command will cause the search fail
digital output to turn OFF.
Note: The taught point for SEARCH must use FINE termination type.
1-53

1. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR

A-83971

Example 1-6. Example Program for SEARCH POINT[j] LBL[k] Search

Instruction
1: J P[1] 50% CNT100
2: J P[2] 50% FINE
3: SENSOR SEARCH START PR[1]
4: SENSOR SEARCH POINT[3] LBL[1]
5: SENSOR SEARCH END
6: JMP LBL[2]
7: LBL[1]
8: J P[3] 40% FINE
9: SENSOR SEARCH START PR[1]
10: SENSOR SEARCH POINT[4] LBL[3]
11: SENSOR SEARCH END
12: LBL[2]
13: L PR[1] 100mm/sec FINE
14: Arc Start[2]
15: TRACK SENSOR[3]
16: L P[8] 25mm/sec CNT100
17: L P[10] 25mm/sec CNT100
18: Arc End[2]
19: LBL[3]
20: J P[1] 50% FINE

Description
Move to first search point
Start search routine

Failed 1st search jumps to here


Move to alternate search position
Alternate search
(Any other program sequence
could be performed instead of
another search)

Failed 2nd search jumps to here

Note Searching occurs at the same location using either position type or offset type searches.
Performing a Search at a Taught Point
Use Procedure 1-12 to perform a search at a taught point.
Procedure 1-12 Performing a Search at a Taught Point
Steps
1.

Jog the robot so that the TCP (weld wire) and the laser scan are both on the joint to be
searched. This will ensure proper alignment to the joint.
Note For a position type search, the tool (torch) angles used for searching must be the
same as the angle desired for welding. Orientation of the last search position is used in
the calculated search position. The data in the position register will be the location of the
laser line on the joint and the torch orientation at the taught point.

2.

3.

Jog the robot so that the laser scan is at the desired search location with the TCP slightly
above the joint. This will provide some clearance between the joint and the TCP to allow part
movement.
Press F1, POINT.
Note Teach this location with a FINE termination type.

4.

Press NEXT, >.


a.

1-54

Press F1, [INST].

1. ADAPTIVE WELDING WITH SERVOROBOT SENSOR

5.

b.

Select SENSOR.

c.

Select Search Start . Enter a position register value.

d.

Press ENTER.

Press NEXT, >.


a.

Press F1, [INST].

b.

Select SENSOR.

c.

Select Search Point.


Type a sensor schedule number and press ENTER.
Note: To provide an alternate action for a search error, use the SENSOR SEARCH
POINT[i] LBL[j] instruction.
Note Press the choice button if you want to use the LBL instruction.
Note: To add an additional search (such as, two position search routine), repeat Steps
1 through Step 5 . Additional points can be added between searches to avoid objects.

6.

Press NEXT, >.


a.

Press F1, INST.

b.

Select SENSOR.

c.

Select Search End .


The example shown in Figure 1-25 depicts the placement of the TCP and the sensor
during teaching. The joint position will be determined by transforming the offset
values provided by the sensor in the sensor frame into WORLD frame values.

Figure 1-25. Example of Sensor Search Point

1-55

1. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR

A-83971

Figure 1-26 shows an example of using two-position type searches to find both ends
of a joint to be welded. The robot is then commanded to weld between these two
automatically taught positions (PR[1] and PR[2]).
Figure 1-26. Two Points to Determine Weld Path

Search Retry
Search Retry is an automatic recovery feature. In the event that a search fails, the robot will
reposition the sensor to perform another search. The number of retries is controlled by the
value of RETRY COUNT in the sensor schedule. A value of zero indicates that search retry
is disabled. When a search fails, the robot will move along a specified direction by a
specified distance. These values are set in the sensor schedule as RETRY DIRECTION and
RETRY DISTANCE. The robot motion is relative to the sensor frame.
If the number of retries is specified greater than 1 with a maximum of 5, motion will
alternate direction for successive retries.
This process continues altering motion directions and adding to the retry distance until the
number of retries is exceeded, or searching is successful.
For example, if RETRY COUNT = 4, RETRY DISTANCE = 3, and RETRY DIRECTION =
x, the sequence shown in Table 1-9 is possible.
Table 1-9. Search Retry Count

1-56

Retry Number

Motion

Status after Search

Programmed position

Fail

3mm in +X direction from trained


point

Fail

3mm in -X direction from trained


point

Fail

6mm in +X direction from trained


point

Fail

6mm in -X direction from trained


point

Successful or Fail

1. ADAPTIVE WELDING WITH SERVOROBOT SENSOR


Note All SEARCH RETRIES will be performed before a JMP/LBL when the SENSOR
SEARCH PR[ ] LBL[ ] instruction is executed.

1.6.5

Track
This section describes the programming for sensor TRACK function. The TRACK function
is used to follow the seam line while welding.
Track Instruction
Tracking uses the following instructions.
Track SENSOR [i] Track End
Teach the Track instructions at the tracking start point. The index i is the sensor schedule
number. Teach Track End instructions at the tracking end point.
Including Track Instructions in a Program
Track instructions are in the TRACK instruction set within the INST submenu. The track
instructions are as follows:

1.6.6

TRACK
TRACK END

Track Schedule
After the tracking instructions and position points are properly taught in a program, the
sensor schedule is used to define and adjust tracking parameters. After a sensor schedule is
defined for a specified joint type, it can be used by any program that is tracking a similar
joint.

1.6.7

Track Programming
Track programming is used to provide dynamic offsets (while welding), to adjust the robot
motion. This allows the TCP (welding wire) to follow the actual weld joint instead of the
programmed weld joint.
Typically, the tracking function is preceded by a search routine. Welds can also be started
without searching, and then activate the tracking function. This might affect the weld start
location.
Tracking Program Example
The following sensor tracking instructions are available:

TRACK SENSOR[i] RPM[j]


Track SENSOR[i]
Track End

Example 1-7 contains an example of using tracking instructions in a teach pendant program.

1-57

1. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR

A-83971

Example 1-7. Tracking Program Example

Instruction
1: J P[1] 50% FINE
2: SENSOR SEARCH START PR[4]
3: SENSOR SEARCH POINT[2]
4: SENSOR SEARCH END
5: L PR[4] 50% FINE
6: Arc Start [3]
7: TRACK SENSOR[2]
8: L P[2] 35mm/sec CNT100
9: L P[3] 35mm/sec FINE
10: Arc End [3]
11: Track End

Description

Start tracking with SENSOR Schedule 2

End tracking

Programming Tracking Positions


Use the following guidelines when programming tracking positions:

All positions between the Track SENSOR instruction and the Track End instruction
must use linear motion type.
All positions between TRACK Start and TRACK End should use continuous
termination type (CNT100).

Normally, fewer positions are required to weld a joint with tracking than without tracking.
Positions that are taught between Track SENSOR and Track End are used for the following
functions:

To establish the torch angle while tracking (welding).


To align the laser with the joint.

Enough positions must be taught to keep the joint within the scanning range of the
servo-robot sensor as the joint is tracked.
Warning
DANGER Visible Laser Radiation. Avoid direct exposure to beam. Do
NOT look directly into the beam.
Direct exposure can cause damage to your eyes.
During the execution of the above program sequence, the laser will be
operating at HIGH power levels. Do NOT look directly into the beam
path. Direct exposure can cause damage to your eyes.

1-58

To define the distance to be tracked:


The robot position is updated relative to the trained path.
The end point is used to define the torch angle at the end of the joint to be tracked
and the total distance to be tracked.

1. ADAPTIVE WELDING WITH SERVOROBOT SENSOR


Tracking Programming Strategy
The TRACK SENSOR instruction indicates the place in a program where real time path
adjustment is required. There are two ways to program track instructions:

With a preceding SEARCH command


Move to a trained position, then track

Track Function with a Preceding SEARCH Command


With a preceding SEARCH command, the search actually will locate the joint so that a
positioning move can place the TCP on the weld joint. When you include a search command
before a track instruction, ensure that the weld and laser scan are at the point where the weld
will start. See Example 1-8 for a program example.
Example 1-8. TRACK Function with Preceding SEARCH Command

Instruction
1: J P[1] 30% FINE
2: SENSOR SEARCH START PR[1]
3: SENSOR SEARCH POINT [2]
4: SENSOR SEARCH End
5: L PR[1] 30 % FINE
6: Arc Start[1]
7: TRACK SENSOR [2]
8: L P[2] 25mm/sec CNT100

Description
Search routine

Move to found location


Track after move to PR[1]

Track Function Moving to a Trained Position


The second method is to move to a trained position, then start tracking and allow the sensor
to track into the joint. This method uses less cycle time to execute. However, when you use
this method, the Arc Start position is fixed. See Example 1-9 for a program example.
Example 1-9. Track Function Moving to a Trained Position

Instruction
1: J P[1] 30% FINE
2: L P[2] 25mm/sec FINE
3: Arc Start[1]
4: Track SENSOR [2]

Description
Move to trained point, start welding, then
track into the joint

Use this method only when the desired weld start position does not vary from part to part.
The first method, using the sensor search to determine the Arc Start position, is the
recommended method. Note that in both methods, the sensor does not provide any
information for the first approximately 50 mm (sensor lead distance) of the weld joint. If
tracking the first 50 mm of the joint is critical to your application, use the example shown in
Example 1-10.

1-59

1. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR

A-83971

Example 1-10. Tracking Example

Instruction
Description
1: J P[1] 50% FINE
2: SENSOR SEARCH START PR[4]
3: SENSOR SEARCH POINT[2]
4: SENSOR SEARCH END
5: TRACK SENSOR[2]
Start tracking before moving to Arc Start position
6: L PR[4] 50% FINE
7: Arc Start [3]
8: L P[2] 35mm/sec CNT100
9: L P[3] 35mm/sec FINE
10: Arc End [3]
10: Track End
End tracking

Schedule Change During Tracking


The tracking schedule number can be modified during tracking by using the TRACK
SENSOR instruction with a different schedule number. See Figure 1-27.
Figure 1-27. Schedule Change During Tracking Example

In this program, the schedule data is changed on line 7. The tracking of line 5 and 6 are
executed with schedule 2, and line 8 and 9 are executed with schedule 5. The following
schedule data can be modified by the TRACK START instruction during tracking:

Joint number

Motion sensitivity

Y and Z offset
Performing a sensor schedule change after tracking is established is useful in accommodating

1-60

Differences in joint appearance


Different joint geometries
Change tracking bias

1. ADAPTIVE WELDING WITH SERVOROBOT SENSOR


Teach the schedule change point so the laser-scan is located at the point you require the
schedule change. The best way to do this is to mark the point where the schedule change
should occur, then single step through your program until the laser scan reaches the point.
Next, insert an instruction (with CNT100) and the TRACK SENSOR[#] instruction into the
program.
If you want to have a welding schedule change at the same location as a sensor schedule
change, you must teach two position points. Start by putting a pencil mark at the location on
the joint where you want the change. Jog the robot so that the laser line is at the marked
location. Teach a position and then a TRACK SENSOR instruction. Jog the robot so the TCP
(weld wire) is at the mark and teach a position with an arc start instruction.
Note: An exception to this is the TRACK SENSOR[99] instruction. Since TRACK
SENSOR[99] holds the current offset and does not actually track, the change occurs at the
TCP location, similar to a weld schedule change.
Error Recovery at Tracking
When the tracking is paused by an alarm, the following recovery functions can be used,
depending on the user settings.
Original Path Resume
When the robot is moved by jogging after the tracking is paused, and the program is
resumed, the robot will move to the program stop position. After the robot has reached the
stop position, the tracking and welding will be restarted.
When the tracking is stopped by Emergency stop input, the power of laser will be turned off.
The laser must be reset after all faults are cleared.
The Original Path Resume can be enabled in the weld system setup menu.
Scratch start
The scratch start function can be executed with tracking.
During the forward and backward motion of the scratch start, the MIG EYE will be scanning,
but the tracking is not executed. Tracking is started after the robot returns to the weld start
position.
The scratch start and setup data for scratch start can be enabled in the weld system setup
menu.
Tracking Sensor Error Recovery
When the tracking is resumed after a Sensor Error, the robot will recover according to the
following procedure if tracking error recovery is enabled.
1.

In case that the robot is jogged after the error is reset, the welding will resume after the
robot moves back to the stop position.
2. The robot will move to the next destination point without tracking. The destination point
is compensated by the offset from the tracking before the alarm occurred.
3. When the robot reaches the next destination point, the alarm "MIGE-055 Track ready
for resume" will occur. The robot will be paused again.
4. When the program is restarted after resetting the error, tracking and welding will
resume.
To enable the Tracking Error Recovery, enable the Original Path Resume function in weld
system setup menu, and enable TRACKING ERROR RECOVERY in Sensor system set up
1-61

1. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR

A-83971

screen.
Tracking Error recovery will execute when the following errors occur:

MIGE-027 Can't detect joint continuously


MIGE-034 Path points too close
MIGE-036 Track calculation fault
MIGE-037 No MIG EYE data in buffer
MIGE-038 Can't calculate track offset
MIGE-039 Offset is too large

In case that the Sensor Error occurs at last segment in tracking segments, the alarm MIGE055 does not occur.
In case that the logic instructions are taught between the Sensor Error line and the next
motion instruction, the alarm MIGE-055 occurs after the logic instructions are executed.
Figure 1-28. Example of How the Sensor Resumes from a Tracking Error

Track Hold/Resume Function


The TRACK SENSOR[99] instruction can be used during a normal tracked path to suspend
the tracking function temporarily (HOLD). This retains the current offset that was in effect
prior to the command execution.
HOLD
When TRACK SENSOR[99] is executed as a schedule change , tracking operates as
follows:

1-62

Tracking is suspended.
The Sensor offset is recorded. The current offset, in the world coordinate system, will be
applied uniformly to all subsequently taught points until a TRACK or TRACK END
instruction is executed.
The current weld schedule is maintained.

1. ADAPTIVE WELDING WITH SERVOROBOT SENSOR


RESUME
When TRACK SENSOR[99] is followed by a regular track schedule (TRACK
SENSOR[1..10]) , tracking operates as follows:

The sensor schedule change starts the tracking function.


The laser power is increased and the scanning resumes.
The offset from the TRACK SENSOR[99] instruction is used until tracking can be
established under the new tracking schedule.
Tracking is executed using the new tracking schedule.

The following restrictions apply to using TRACK SENSOR[99] to hold offset:

The length of the "held" offset distance must be from 5 to 50 mm.


There must be at least 120 mm between TRACK SENSOR[99] commands.
TRACK SENSOR[99] must follow a regular TRACK SENSOR[1..10] instruction to
use the tracking offset.

Using TRACK SENSOR[99] to Bypass an Object


Figure 1-29 shows how the TRACK SENSOR[99] instruction is used to bypass an object.
Figure 1-29. Use of Track Hold

Figure 1-29 is a plan view of a lap joint with a cutout in the lower plate and a notch in the
upper plate.
It is assumed that the notch does not shift along the x direction of the weld path.
Example 1-11 shows the program instructions used to execute the weld path shown in Figure
1-29 . In this program, the notch around the cutout is not welded, and welding is suspended
across the cutout.

1-63

1. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR

A-83971

Example 1-11. Using TRACK SENSOR[99] to Bypass an Object

Instruction
1: J P[1] 100% FINE
2: SENSOR SEARCH START PR[1]
3: SENSOR SEARCH POINT [1]
4: SENSOR SEARCH END
5: L PR[1] 100mm/sec FINE
6: Arc Start[1]
7: TRACK SENSOR[1]
8: L P[2] 25mm/sec CNT100
9: Arc End[1]
10: TRACK SENSOR[99]
11: L P[3] 30mm/sec CNT100
12: Arc Start [2]
13: TRACK SENSOR[2]
14: L P[4] 25mm/sec FINE
15: Arc End[2]
16: Track End

Description

TRACK SENSOR[99] uses bias and offset and the adaptive weld schedule from the TRACK
SENSOR[1] instruction until the TRACK SENSOR[2] instruction is executed. When P[3] is
reached, the tracking resumes with the full information of the schedule 2 data.
The bias and offset values used throughout the TRACK SENSOR[99] instruction are
maintained after P[3] until tracking is re-established. The offset and bias will begin at lead
distance of laser line to TCP after the scheduled change point, then the new bias and offset
obtained from the TRACK SENSOR[2] instruction are used.
Using TRACK SENSOR[99] to Weld a Notch
Figure 1-30 shows how the TRACK SENSOR[99] instruction is used to weld a notch.
Figure 1-30. Hold Offset/Bias During a Non-tracked Weld

Example 1-12 shows the program instructions used to execute the weld path shown in Figure
1-30.
1-64

1. ADAPTIVE WELDING WITH SERVOROBOT SENSOR


Example 1-12. Hold Offset/Bias During a Non-tracked Weld

Instruction
1: J P[1] 100% FINE
2: SENSOR SEARCH START PR[1]
3: SENSOR SEARCH POINT [1]
4: SENSOR SEARCH END
5: L PR[1] 100mm/sec FINE
6: Arc Start[1]
7: TRACK SENSOR[1]
8: L P[2] 25mm/sec CNT100
9: TRACK SENSOR[99]
10: L P[3] 30mm/sec CNT100
11: L P[4] 25mm/sec CNT100
12: L P[5] 25mm/sec CNT100
13: L P[6] 25mm/sec CNT100
14: L P[7] 25mm/sec CNT100
15: TRACK SENSOR[2]
16: L P[8] 25mm/sec FINE
17: Arc End[2]
18: Track End
Note P[3] through P[7] will have a sensor lateral and Z offset applied uniformly. P[3]...P[4]
might be a circular motion type.

1.7

ROOT PASS MEMORIZATION AND MULTI-PASS


The root pass memorization (RPM) feature described in Section 1.7.1 records the joint
geometry data such as the gap and cross-sectional area in addition to recording positional
offset data provided by the sensor. The RPM feature is used in conjunction with the multipass (MP) feature. The MP feature described in Section 1.7.2 uses the weld and weave
schedules and multi-pass offsets set in the program header instead of using the global
schedules and position registers. The multi-pass feature also performs adaptive welding using
the joint geometry data stored in the RPM buffer.
In this section, the differences in RPM and MP and the required teach pendant programming
method are explained in detail. For a description of the basic functionality of RPM and MP,
refer to Arc Tool manual.

1.7.1

Root Pass Memorization


Root pass memorization (RPM) is the process of recording positional offset and joint
geometry information at specified intervals (pitch) during the root, or first tracking pass over
a joint. The first pass might or might not be welded. Data is recorded in the RPM buffer in
both cases. In addition to the x, y, and z offsets that determine the exact joint location, five
additional items -- gap, mismatch, area, S1, and S2 -- are stored in the RPM buffer. This data
is played back during the subsequent passes and used for adaptive welding and weaving.
1-65

1. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR

A-83971

Teaching RPM Instructions


During the root pass, the RPM is added to the track instruction, which records the offsets and
geometry data in the specified RPM buffer. To include an RPM instruction, select
Track/Offset, then Track RPM to yield the TRACK SENSOR[i] RPM[j] instruction, where i
is the sensor schedule and j is the RPM buffer number. Enter a valid sensor schedule number
and RPM buffer number. There are ten RPM buffers (1 to 10) available by default.
To increase the number of RPM buffers available, set the system variable
$RPM_CFG.$N_BUFFERS to the desired value. You must perform a controlled start after
changing the number of buffers.
Note Adding and using additional RPM buffers will reduce PERM (CMOS) memory. Make
sure that adequate memory is available.
How RPM Functions
RPM records the positional offset and geometry data in a buffer in the controller SRAM
memory. This enables the controller to retain the RPM data in the cases of power cycling or
failure. Once-recorded RPM data remains in the buffer until the same buffer is overwritten.
The recording of data starts simultaneously with motion and tracking. Data for all of the
motion paths (segments) between the TRACK START and TRACK END instructions are
stored in the RPM buffer. Starting from the TRACK START position, the offset and
geometry data is recorded when the robot reaches the specified distance (given by pitch)
along the path. Refer to Figure 1-31 .
Figure 1-31. Adjusting a Weld Path by Modifying RPM Data

Setting RPM Parameters


Ordinarily, modifying RPM system variables is not required. However, your site and specific
type of welding might require some modifications to the $RPM_PG system variable.
RPM provides a means to adjust the pitch and pitch mode of RPM. Refer to Table 1-10 . Use
Procedure 1-13 to set the pitch mode for RPM.

1-66

1. ADAPTIVE WELDING WITH SERVOROBOT SENSOR


Table 1-10. RPM System Variables

SYSTEM VARIABLE

DESCRIPTION

$RPM_PG.$PITCH
default : 10 mm

$PITCH allows you to specify the distance


between the recording of position offset
information. In other words, $PITCH
specifies how often RPM will actually record
the information that the sensor is supplying.
This distance can be in time, milliseconds, or
in linear distance, millimeters, depending
upon the setting of $PITCH_ MODE . When
using milliseconds, the time between
recordings must be greater than 100 ms or an
error will occur. When pitch mode is
distance, the program speed has to be
adjusted so that the time between the two
records is greater than 100 ms. $PITCH can
be changed in your program by using the
PARAMETER NAME instruction. For more
information about the PARAMETER NAME
instruction, refer to the ArcTool Setup and
Operations Manual.

$RPM_PG.$PITCH_MODE
default: 0

$PITCH_MODE allows you to specify


whether the measurement used between
recorded position offset information will be
based in time, milliseconds, or in linear
distance, millimeters. $PITCH controls the
actual length between recordings. If
$PITCH_MODE is set to 0, linear distance is
used. If $PITCH_MODE is set to 1, time is
used. The default is 0, distance.
$PITCH_MODE can be changed in your
program by using the PARAMETER NAME
instruction. For more information about the
PARAMETER NAME instruction, refer to
the ArcTool Setup and Operations Manual.

Procedure 1-13 Setting the Pitch Mode for RPM


Steps
1.

Press MENUS.

2.

Select SETUP.

3.

Select Sensor Sys. You will see a screen similar to the following.

1-67

1. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR

SETUP SERVO ROBOT 1/10


1 Use rotator
2 Track fail DO
3 Search fail DO
4 Laser status DO
5 Laser status DI
6 Track cir axis num
7 Record pitch for RPM
8 Record pitch mode for RPM
9 Joint ID for laser ON
10 Tracking error recovery

1.7.2

A-83971

[FALSE ]
[
0]
[
0]
[
0]
[
0]
[
1]
[ 10.0]
[mm
]
[
1]
[Enable]

4.

Determine PITCH_MODE, SELECT "mm" or "msec".

5.

Determine PITCH interval.

6.

Enter a value.

Using Multi-Pass with Adaptive Welding


The purpose of recording the positional offset and geometry data during root (first pass) is
described in the previous section is to use the data in subsequent passes in multi-pass
welding. Multi-pass welding is used in applications where large welds are required. The large
welds are created by layering and offsetting smaller welds. The multi-pass functionality
described is enhanced to use the data in the program header. The improvements to the multipass functionality are described in this section.
Teaching Multi-Pass
Multi-pass consists of two programming instructions:

MP OFFSET PR[...] RPM[...]


MP OFFSET END

To teach the instructions in a program, press [INST] and select Track/Offset to see the MP
instructions.
How Multi-Pass Functions
The PR[] allows you to offset the entire weld and change tool direction. The RPM[] allows
you to specify the RPM buffer to use.
In order to use the multi-pass offset in the program header, you must use PR[99]. When a
MP OFFSET instruction sees PR[99], it looks at the program header for offset data and
ignores the actual position register. The actual data in PR[99], if any, is not used at all. Refer
to Procedure 1-10 .
Similar to MP OFFSET PR[99] RPM[...], you must use Arc Start [99] and Weave [99] in
order to use the weld and weave schedules specified in the program header. Multi-Pass
offsets can be used with and without the RPM feature. If you do not want to use the RPM
data and want to just apply the multi-pass offsets, use MP OFFSET PR[99] RPM[99].
The MP OFFSET instructions also perform adaptive welding, Multi-Pass.
1-68

1. ADAPTIVE WELDING WITH SERVOROBOT SENSOR


MP OFFSET END stops the use of the MP OFFSET instruction.

1.7.3

Programming
In order to perform multi-pass adaptive welding using the enhanced MP and RPM
instructions and the data in the program header instead of the global schedules, you must
adhere to the programming method described in this section. This programming method is
intended to reduce the maintenance burden on the programmer and to improve the ease of
programming.
In complex parts that require multiple large welds on different joint types, it is required to
switch from weld to weld between passes. This allows for cooling of welds between passes,
minimizes thermal distortion, and increases overall productivity.
For multi-pass welding, you must use one teach pendant program per weld. The nominal
weld and weave schedules and multi-pass offsets for all passes of the weld must be input in
the program header. Refer to Procedure 1-10 .
You must create a top-level program that CALLs the weld program to weld a pass. The
calling program must specify as parameters the pass number to be welded and the direction
of the pass. For example, see the complex part shown in Figure 1-32 .

Figure 1-32. Example Part

For the purpose of explanation, assume that there are three joints, a fillet, a V-groove, and a
lap joint to be welded on the part at the locations shown, all of which require multi-pass
welding. Before programming, you must determine the number of passes for each of these
welds and the sequence in which you want to weld these joints. Then create a part program
as shown in Figure 1-33 .
1-69

1. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR

A-83971

Figure 1-33. Part Program

In this example, the part program CALLs the weld teach pendant program WELD01.TP and
passes two parameters, the pass number and direction. You can change the sequence by
editing the teach pendant program. The pass number must be within the number of passes
defined for the corresponding weld, as set in the WELD.TP program header. The direction
can be either 0 or 1, 0 meaning normal direction and 1 meaning the reverse direction. The
root pass must always be in the normal direction and the subsequent passes can be either in
the normal or reverse directions.
An example of the WELD.TP program is shown in Example 1-13 . All of the teach pendant
instructions and positional data, as well as the process data, for performing all of the passes
are contained within this teach pendant program.
Note R[1] is the pass number. R[2] is the direction. If R[2] = 0, direction is forward. If R[2]
= 1, direction is backward.
Example 1-13. WELD.TP

1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:L
1-70

R[1]=AR[1]
R[2]=AR[2]
IF R[2]=1, JMP LBL[3]
IF R[1]>1, JMP LBL[2]
SENSOR SEARCH START PR[3]
SENSOR SEARCH POINT[3]
SENSOR SEARCH END
! ROOT PASS
Track SENSOR[3] RPM[3]
PR[3] 20mm/sec FINE

1. ADAPTIVE WELDING WITH SERVOROBOT SENSOR


: Arc Start[99]
13: Weave Sine[99]
14:L P[4] WELD_SPEED FINE
: Arc End[99]
15: Weave End
16: Track End
17:J P[5] 10% FINE
18: END
19:
20:LBL[2:FORWARD PASSES
21: MP Offset PR[99] RPM[3]
22:J PR[3] 10% FINE
: Arc Start[99]
23: Weave Sine[99]
24:L P[4] WELD_SPEED FINE
: Arc End[99]
25: Weave End
26: MP Offset End
27:J P[5] 10% FINE
28: END
29:
30:
31:LBL[3:REVERSE PASSES]
32: LOCK PREG
33:J P[5] 10% FINE
34: MP Offset PR[99] RPM[3]
35:L P[4] 200mm/sec FINE
: Arc Start[99]
36: Weave Sine[99]
37:L PR[3] WELD_SPEED FINE
: Arc End[99]
38: MP Offset End
39:J P[1] 10% FINE
40: UNLOCK PREG
[END]
Note the use of registers and JMP LBL instructions to jump to the proper section of the
program based on the pass number and direction passed in by the caller. The program shown
in Example 1-13 is divided into three parts, one for the root pass, one for all other normal
passes, and one for all of the reverse passes.
For the root pass, the SEARCH feature can be used to determine the Arc Start point. Then a
Track instruction is used with RPM to track the joint and also to perform adaptive welding
during the root pass and the offset and geometry data is recorded in the RPM buffer for
future use. You must use Arc Start [99] and WELD SPEED as shown in the example in order
to use the data in the program header. When Arc Start [99] is executed, the weld schedule
data that corresponds to the pass being welded is obtained from the program header and is
input to the welding power supply. This also allows the use of a run-in schedule defined for
1-71

1. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR

A-83971

the pass in the program header.


A similar Arc End [99] must be used to use the crater fill and burnback schedules defined in
the program header. Weave Sine [99] uses the weave schedule data defined in the program
header. Note the END instruction on line 18, which takes the program flow out of
WELD01.TP and back to PART.TP.
For all other passes, when the PART.TP program calls the WELD01.TP program, if the pass
is in the normal direction, program flow jumps to LBL[2] on line 20 and returns back to
PART.TP line 28. If the pass direction is reverse, lines 31 to 40 get executed. The MP
OFFSET PR[99] RPM[...] instruction is used in all non-root passes to get the offsets from the
program header, replay the offset data in the RPM buffer to tracking, and use the geometry
data for adaptive welding. When position registers are used to store the Arc Start position as
in this example, you will have to use the LOCK and UNLOCK PREG instructions.

1.8

ADAPTIVE WELDING
This section explains how adaptive welding is accomplished during the root pass and
subsequent passes in multi-pass welding using a Karel program. You must set up all the data
required for multi-pass adaptive welding as explained in Section 1.5 . The actual adaptive
algorithm is implemented in a KAREL program as explained in this section and must be
translated into a .PC file and loaded on the controller. This .PC file must be selected as the
adaptive algorithm in the WELD.TP program.
During the root pass, the joint geometry data obtained from the servo robot sensor is input to
the Karel program which must determine the new weld and weave parameters and write them
to appropriate system variables. The adaptive software on the controller reads the system
variables and applies the changes to the weld power supply and robot motion to adapt the
weld and weave parameters respectively. In case of multi-pass welding, during the root pass,
the geometry data is stored in the specified RPM buffer. During subsequent passes the data
from the RPM buffer is input to the KAREL program, which again determines the required
changes to weld and weave schedules.
The input to and output from the KAREL program is handled via system variables as shown
in the following diagram.

1-72

1. ADAPTIVE WELDING WITH SERVOROBOT SENSOR


Figure 1-34. Adaptive Welding I/O

The KAREL program adtask is always running on the controller. As shown in the above
diagram, when $SRAD_IN.$RDY_FLAG is true , the Karel task calls the adaptive
algorithm program selected in the program header. The name of the algorithm file is copied
to $AD_WELD.$ALGO_NAME when the PART.TP program calls the WELD.TP
program. In addition, all the data in the program header is copied to the following system
variables. These variables can accessed and used by the adaptive algorithm. Table 1-11 lists
and describes the Adaptive Welding System variables.
Table 1-11. Multi-Pass System Variables

SYSTEM VARIABLE

DEFINITION

$MP_WELD.$NUM_PASSES
$MP_WELD.$LAST_PASS
$MP_WELD.$CUR_PASS

Total number of passes for the weld


Last pass number welded
Current pass number being welded

$MP_PASS.$WELD_SCH
$MP_PASS.$RUNIN_SCH
$MP_PASS.$BBACK_SCH
$MP_PASS.$CFILL_SCH
$MP_PASS.$WV_SCH$
$MP_PASS.OFST

Weld schedule for the current pass


Run-in schedule for the current pass
Burnback schedule for the current pass
Craterfill schedule for the current pass
Weave schedule for the current pass
Multipass offsets for the current pass

$AD_WELD.$JNT_TYPE
$AD_WELD.$ALGO_NAME.
$AD_WELD.$MIN_WD_SCH
$AD_WELD.$MAX_WD_SCH
$AD_WELD.$MIN_WV_SCH
$AD_WELD.$MAX_WV_SCH

Joint type for the current weld


Name of the algorithm .PC file selected
Lower limits set for the weld parameters
Upper limits set for the weld parameters
Lower limits set for the weave parameters
Upper limits set for the weave parameters

$AD_JOINT.$GAP.$NOMINAL
$AD_JOINT$GAP.$MIN_VAL
$AD_JOINT$GAP.$MAX_VAL

This variable stores the nominal ($NOMINAL), low


($MIN_VAL) and high ($MAX_VAL) values for gap,
mismatch, area, s1, s2, s3, s4 and s5 set in the current
1-73

1. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR

A-83971

$AD_JOINT$AREA.$NOMINAL weld TP program header.


$AD_JOINT$AREA.$MIN_VAL
$AD_JOINT$AREA.$MAX_VAL
$AD_JOINT$MISMATCH.$NOM
INAL
$AD_JOINT$MISMATCH.$MIN_
VAL
$AD_JOINT$MISMATCH.$MAX
_VAL
$AD_JOINT.$S1.$NOMINAL
$AD_JOINT.$S1.$MIN_VAL
$AD_JOINT.$S1.$MAX_VAL
$AD_JOINT.$S2.$NOMINAL
$AD_JOINT.$S2.$MIN_VAL
$AD_JOINT.$S2.$MAX_VAL
$AD_JOINT.$S3.$NOMINAL
$AD_JOINT.$S3.$MIN_VAL
$AD_JOINT.$S3.$MAX_VAL
$AD_JOINT.$S4.$NOMINAL
$AD_JOINT.$S4.$MIN_VAL
$AD_JOINT.$S4.$MAX_VAL
$AD_JOINT.$S5.$NOMINAL
$AD_JOINT.$S5.$MIN_VAL
$AD_JOINT.$S5.$MAX_VAL
$AD_CONST.$C1.$VALUE
$AD_CONST.$C2.$VALUE
$AD_CONST.$C3.$VALUE

The global constant values can be accessed from the


following system variables.

$AD_PASS.$CP1
$AD_PASS.$CP2
$AD_PASS.$CP3

These system variables store the pass-specific constant


values.

The system variables described in Table 1-11 can be used in the adaptive algorithm in
conjunction with the sensor data obtained from $SRAD_IN to calculate the new weld and
weave parameters.
In Example 1-14 , a template algorithm called buttalgo.kl , for butt joint is shown. The
program provides a simple example of an adaptive algorithm. The buttalgo.kl program will
copy the listed system variables to several local variables at the beginning. In the adaptive
algorithm section of the program , the program uses only gap among the sensor data and
adapts only travel speed among the weld parameters and adapts all the weave parameters amplitude, frequency, right dwell and left dwell. Notice that different pass specific constants
(cp1 and cp2) are used in different ranges of the gap variable for adapting weave amplitude.
The robot speed is changed linearly with the gap, assuming the nominal speed corresponds to
the nominal gap. The weave frequency is changes as the speed changes. The dwell times are
changed with the speed as well. At the bottom of the program the weld and weave parameters
calculated are set in the system variable $SRAD_OUT.
The KAREL program shown in Example 1-14 serves only as an example and you should
develop and use an adaptive algorithm that is suitable to your process. The program should
follow the structure shown in the example and must be error free for successful adaptive
welding.
1-74

1. ADAPTIVE WELDING WITH SERVOROBOT SENSOR


Example 1-14. Example Adaptive Welding Algorithm

-------------------------------------------------------------------PROGRAM buttalgo
-------------------------------------------------------------------%COMMENT='Algorithm for Butt Joints'
%SYSTEM
%NOABORT = ERROR + COMMAND
%NOPAUSE = ERROR + COMMAND + TPENABLE
%NOBUSYLAMP
%NOLOCKGROUP
%ENVIRONMENT srdef
%ENVIRONMENT madef
%INCLUDE klevccdf
VAR
-- measured variables (sensor output)
gap: REAL
-- weld parameters (from program header)
nom_speed, min_speed, max_speed: REAL
-- weave parameters (from program header)
-- nominal values may change for each pass
-- min and max remain the same for all passes
nom_ampl, min_ampl, max_ampl : REAL
nom_freq, min_freq, max_freq : REAL
nom_ldwl, min_ldwl, max_ldwl : REAL
nom_rdwl, min_rdwl, max_rdwl : REAL
-- joint parameters (from program header)
nom_gap, min_gap, max_gap: REAL
-- constants (from program header)
-- c1, c2, c3 remain the same for all passes
-- cp1, cp2 and cp3 may change for each pass
c1, c2, c3 : REAL
cp1, cp2, cp3 : REAL
-- Output variables
speed : REAL
ampl : REAL
freq : REAL
ldwl : REAL
rdwl : REAL
-- other variables
-----------------------------------------BEGIN -- Begin buttalgo
-- This routine executes the adaptive algorithm
-- Read $SRAD_IN and fill out $SRAD_OUT
-- Header data can be accessed from $MP_WELD, $MP_PASS
-- $AD_WELD, $AD_JOINT, $AD_CONST and $AD_PASS
-- read the header data from system variables
1-75

1. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR

A-83971

nom_speed = $MP_PASS.$WELD_SCH.$WSPEED
min_speed = $AD_WELD.$MIN_WD_SCH.$WSPEED
max_speed = $AD_WELD.$MAX_WD_SCH.$WSPEED
nom_ampl = $MP_PASS.$WV_SCH.$AMPLITUDE
min_ampl = $AD_WELD.$MIN_WV_SCH.$AMPLITUDE
max_ampl = $AD_WELD.$MAX_WV_SCH.$AMPLITUDE
nom_freq = $MP_PASS.$WV_SCH.$FREQUENCY
min_freq = $AD_WELD.$MIN_WV_SCH.$FREQUENCY
max_freq = $AD_WELD.$MAX_WV_SCH.$FREQUENCY
nom_ldwl = $MP_PASS.$WV_SCH.$DWELL_LEFT
min_ldwl = $AD_WELD.$MIN_WV_SCH.$DWELL_LEFT
max_ldwl = $AD_WELD.$MAX_WV_SCH.$DWELL_LEFT
nom_rdwl = $MP_PASS.$WV_SCH.$DWELL_RIGHT
min_rdwl = $AD_WELD.$MIN_WV_SCH.$DWELL_RIGHT
max_rdwl = $AD_WELD.$MAX_WV_SCH.$DWELL_RIGHT
nom_gap = $AD_JOINT.$GAP.$NOMINAL
min_gap = $AD_JOINT.$GAP.$MIN_VAL
max_gap = $AD_JOINT.$GAP.$MAX_VAL
c1 = $AD_CONST.$C1.$VALUE
c2 = $AD_CONST.$C2.$VALUE
c3 = $AD_CONST.$C3.$VALUE
cp1 = $AD_PASS.$CP1
cp2 = $AD_PASS.$CP2
cp3 = $AD_PASS.$CP2
-- read sensor input from $SRAD_IN
gap = $SRAD_IN.$GAP
-- set the other variables
-- adaptive algorithm
IF ( gap < min_gap ) THEN
ampl = min_ampl -- set wv amplitude to minimum
freq = max_freq -- set wv frequency to maximum
speed = max_speed -- set weld speed to maximum
ENDIF
IF ((gap >= min_gap) AND (gap < nom_gap)) THEN
-- set the weave amplitude to half the gap
-- minus a constant to not hit the walls
-- Note: The constant for amplitude change can be different for
each pass
ampl = (gap/2) - cp1
-- increase the speed proportional to the gap
speed = nom_speed * (1 + (nom_gap - gap) * c1)
-- Change frequency proportional speed
freq = nom_freq * speed / nom_speed
ENDIF
IF ((gap >= nom_gap) AND (gap < max_gap)) THEN
-- set the weave amplitude to a half the gap
1-76

1. ADAPTIVE WELDING WITH SERVOROBOT SENSOR


-- minus a constant to not hit the walls
-- Note: The constant for amplitude change can be different for
each pass
ampl = (gap/2) - cp2
-- decrease the speed proportional to the gap
speed = nom_speed * (1 - (gap - nom_gap) * c2);
-- Change frequency proportional speed
freq = nom_freq * speed / nom_speed
ENDIF
IF (gap >= max_gap) THEN
ampl = max_ampl -- set wv amplitude to maximum
freq = min_freq -- set wv frequency to minimum
speed = min_speed -- set weld speed to minimum
ENDIF
-- Check and enforece the limits
IF (speed > max_speed) THEN speed = max_speed; ENDIF
IF (speed < min_speed) THEN speed = min_speed; ENDIF
IF (ampl > max_ampl) THEN ampl = max_ampl; ENDIF
IF (ampl < min_ampl) THEN ampl = min_ampl; ENDIF
IF (freq > max_freq) THEN freq = max_freq; ENDIF
IF (freq < min_freq) THEN freq = min_freq; ENDIF
-- Adapt dwell
ldwl = nom_ldwl * gap/nom_gap
rdwl = nom_rdwl * gap/nom_gap
-- set the results in $SRAD_OUT
$SRAD_OUT.$wd_sch.$wspeed = speed
$SRAD_OUT.$wv_sch.$amplitude = ampl
$SRAD_OUT.$wv_sch.$frequency = freq
$SRAD_OUT.$wv_sch.$dwell_right = rdwl
$SRAD_OUT.$wv_sch.$dwell_left = ldwl
END buttalgo

1-77

1. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR

1.9

A-83971

SENSOR APPLICATION SOFTWARE

MIG_CRS: (Calculation of cross point.)


MIG_CRS2: (Calculation of cross point with perpendicular line.)
MIG_VECTOR: (Calculation of vector.)
MIG_CIRCLE: (Calculation of center point of circle.)
MIG_FRAME: (Calculation of coordinate system.)

Sensor Application of Search


In addition to the SEARCH and TRACK functionality described in this chapter, the ServoRobot option provides additional software in the form of the KAREL programs listed above,
for different applications. The data for each application should be set in registers. All five
application programs are loaded automatically with the Servo-Robot option. Each application
requires a continuous block of seven registers and a continuous block of six position
registers.

1.9.1

Setup
The following setup is necessary for using the application instruction. Set the first register's
number to be used in register 32 (R[32]). Seven consecutive registers starting from the
number in register 32 are used. Data should be set for each application in these registers.

Content of register
If register 32 has a value of N, the following registers (R[N] ... R[N+6]) have special
meaning for Sensor applications.
R[N] = 1 - Application enabled. R[N] = 0 - Application disabled.
R[N+1] = 1 -Enables a test message display on the user screen that describes how each
register R[N] to R[N+6] are being used. R[N+1] = 0 - Disable the display.
R[N+2] - This register contains the index of position register for the calculated data. An
example of this would be if R[N+2] = M , then:
PR[M] Holds calculated data for the offsets. PR[M+1] Holds searched data. PR[M+2]
- Holds searched data PR[M+3] - Holds searched data PR[M+4] - Holds searched data
* The number of the position registers PR[M+1]... used for each application is different.
Note: The position registers PR[M+1]... are used in the search start instructions in your
teach pendant program.
R[N+3] - Holds abnormal output of application program. If it is equal to 1, it indicates a
normal output was produced by the application. If it is equal to 0, it indicates an
abnormal output was produced by the application
R [N+4] - This register is used differently for each application.
R[N+5] - This register is used differently for each application.
R[N+6] - This register is used differently for each application.

1.9.2

MIG_CRS
In MIG_CRS instruction, five position registers are used, including the position register to
output calculated data. This application calculates the intersection of two straight lines and
then saves the calculated position in a position register. Two points on each straight line will
be searched and recorded in the position register. See Figure 1-35 .

1-78

1. ADAPTIVE WELDING WITH SERVOROBOT SENSOR


Figure 1-35. MIG_CRS

Setting of position register


Ex. If R[N+2] = 1

PR[1] : Calculated data

PR[2] : Searched point 1

PR[3] : Searched point 2

PR[4] : Searched point 3

PR[5] : Searched point 4


Set the registers and the position registers according to Section 1.9.1
In MIG_CRS application, the register R[N+4] determines the posture of calculated PR
as below.
R[N+4] = 1 : Use the posture of the first searched position
R[N+4] = 2 : Use the posture of the last searched position
Refer to Example 1-15 .

Example 1-15. Example Program with MIG_CRS

Example Program
1: J P[1] 100% Fine
2: J P[2] 100% Fine
3: SENSOR SEARCH START
4: SENSOR SEARCH POINT
5: SENSOR SEARCH END
6: J P[3] 100% Fine
7: SENSOR SEARCH START
8: SENSOR SEARCH POINT
9: SENSOR SEARCH END
10: J P[4] 100% Fine
11: SENSOR SEARCH START
12: SENSOR SEARCH POINT
13: SENSOR SEARCH END
14: J P[5] 100% Fine
15: SENSOR SEARCH START

PR[2]
[1]

PR[3]
[1]

PR[4]
[1]

PR[5]
1-79

1. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR

A-83971

16: SENSOR SEARCH POINT [1]


17: SENSOR SEARCH END
18: R[32] = 11
19: R[11] = 1
20: R[12] = 0
21: R[13] = 1
22: R[14] = 0
23: R[15] = 1
24: CALL MIG_CRS
25: IF R[14] = 0 JUMP LBL[99]
26: J PR[1] 100% Fine
27: LBL[99]

1.9.3

MIG_CRS2
In MIG_CRS2 instruction, four position registers are used, including the position register to
output calculated data. This application calculates the projection of a point on a straight line.
The first searches made by this application will determine the coordinates of a straight line
and based on that, MIG_CRS2 will project a third search point on the straight line, and
calculate the coordinates of that point. See Figure 1-36 .

Figure 1-36. MIG_CRS2

1-80

Setting of position register


Ex. If R[N+2] = 1

PR[1] : Calculated data

PR[2] : Searched point 1

PR[3] : Searched point 2

PR[4] : Searched point 3


Set the registers and the position registers according to Section 1.9.1
MIG_CRS2 also uses R[N=4] to determine the posture of the calculated point.

1. ADAPTIVE WELDING WITH SERVOROBOT SENSOR


R[N+4] = 1 : The posture of the first searched position.
R[N+4] = 2 : The posture of the last searched position.
Refer to Example 1-16 .
Example 1-16. Example Program with MIG_CRS2

Example Program
1: J P[1] 100% Fine
2: J P[2] 100% Fine
3: SENSOR SEARCH START PR[2]
4: SENSOR SEARCH POINT [1]
5: SENSOR SEARCH END
6: J P[3] 100% Fine
7: SENSOR SEARCH START PR[3]
8: SENSOR SEARCH POINT [1]
9: SENSOR SEARCH END
10: J P[4] 100% Fine
11: SENSOR SEARCH START PR[4]
12: SENSOR SEARCH POINT [1]
13: SENSOR SEARCH END
14: R[32] = 11
15: R[11] = 1
16: R[12] = 0
17: R[13] = 1
18: R[14] = 0
19: R[15] = 1
20: CALL MIG_CRS2
21: IF R[14] = 0 JUMP LBL[99]
22: J PR[1] 100% Fine
23: LBL[99]

1.9.4

MIG_VECTOR
In MIG_VECTOR instruction, three position registers are used, including the position
register to output calculated data. This instruction calculates a point at a specified distance
along a searched direction. The first two search points give the direction, and R[n+4 ] gives
the distance from the first search point along the direction of the search. See Figure 1-37 .

1-81

1. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR

A-83971

Figure 1-37. MIG_VECTOR

Setting of position register


Ex. If R[N+2] = 1

Position register [1] : Calculated data

Position register [2] : Searched point 1

Position register [3] : Searched point 2


Set the registers and the position registers according to Section 1.9.1
R[N+4] = 50 : The distance from the first searched point to the calculated point. (unit :
mm)
Refer to Example 1-17 .

Example 1-17. Example Program with MIG_VECTOR

Example Program
1: J P[1] 100% Fine
2: J P[2] 100% Fine
3: SENSOR SEARCH START PR[2]
4: SENSOR SEARCH POINT [1]
5: SENSOR SEARCH END
6: J P[3] 100% Fine
7: SENSOR SEARCH START PR[3]
8: SENSOR SEARCH POINT [1]
9: SENSOR SEARCH END
10: R[32] = 11
11: R[11] = 1
12: R[12] = 0
13: R[13] = 1
14: R[14] = 0
15: R[15] = 50
16: CALL MIG_VECTOR
17: IF R[14] = 0 JUMP LBL[99]
18: J PR[1] 100% Fine
19: LBL[99]
1-82

1. ADAPTIVE WELDING WITH SERVOROBOT SENSOR

1.9.5

MIG_CIRCLE
In MIG_CIRCLE instruction, five position registers are used, including the position register
to output calculated data. This instruction calculates the center of the circle with three of four
searched points on the circle arc. See Figure 1-38 .

Figure 1-38. MIG_CIRCLE

Setting of position register


1. Ex. If register [N+2] = 1

Position register [1] : Calculated data

Position register [2] : Searched point 1

Position register [3] : Searched point 2

Position register [4] : Searched point 3

Position register [5] : Searched point 4


Set the registers and the position registers according to Section 1.9.1 , "Setting."
1. The method of the calculated value should be selected in R[N+4].
R[N+4] = 1 : The result is calculated by three searched positions.
R[N+4] = 2 : The result is calculated by four searched positions.
2. The error of the calculated value should be set in R[N+5].
R[N+5] = 5 : Input the error of the calculated value
Refer to Example 1-18 .

1-83

1. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR

A-83971

Example 1-18. Sample Program

Example Program
1: J P[1] 100% Fine
2: J P[2] 100% Fine
3: SENSOR SEARCH START PR[2]
4: SENSOR SEARCH POINT [1]
5: SENSOR SEARCH END
6: J P[3] 100% Fine
7: SENSOR SEARCH START PR[3]
8: SENSOR SEARCH POINT [1]
9: SENSOR SEARCH END
10: J P[4] 100% Fine
11: SENSOR SEARCH START PR[4]
12: SENSOR SEARCH POINT [1]
13: SENSOR SEARCH END
14: J P[5] 100% Fine
15: SENSOR SEARCH START PR[5]
16: SENSOR SEARCH POINT [1]
17: SENSOR SEARCH END
18: R[32] = 11
19: R[11] = 1
20: R[12] = 0
21: R[13] = 1
22: R[14] = 0
23: R[15] = 2
24: R[16] = 5
25: CALL MIG_CIRCLE
26: IF R[14] = 0 JUMP LBL[99]
27: J PR[1] 100% Fine
28: LBL[99]

1.9.6

MIG_FRAME
In MIG_FRAME instruction, five or six position registers are used, including the position
register to output calculated data. This application calculates a coordinate frame from three
or four search points. See Figure 1-39 .

1-84

1. ADAPTIVE WELDING WITH SERVOROBOT SENSOR


Figure 1-39. MIG_FRAME

Setup for registers:

Set registers R[N], R[N+1], R[N+2], and R[N+3] as described in Section 1.9.1 .
PR[M] : Calculated data
PR[M+1] : Search point 1
PR[M+2] : Search point 2
PR[M+3] : Search point 3
PR[M+4] : Search point 4 (when R[N+4] =2. See below.)
PR[M+5] : Nominal value storage
Register R[N+4] is used to control the method applied to calculating the frame.

When R[N+4]=1, the Frame is calculated from three searches using the KAREL
FRAME instruction. When R[N+4]=2, the Frame is calculated from four searches
using the MIG_CRS method. Refer to Section 1.9.2 for search position requirements.
When R[N+4]=3, the Frame is calculated from three searches using the MIG_CRS2
method. Refer to Section 1.9.3 for search position requirements.
Register R[N+5] contains the calculation error (in minutes).
Register R[N+6] indicates if a nominal frame value is to be stored in Position Register
PR[M+5].

Setting the Nominal Frame in PR[M+5]


When registers R[N] to R[N+5] have been set, register R[N+6] controls when a nominal
frame value is set into PR[M+5]. When MIG_FRAME is successfully executed, and
R[N+6]=1, the currently calculated frame is recorded in PR[M+5] as a nominal frame. The
calculated output in PR[M] can then be applied to a User frame.
When MIG_FRAME is successfully executed after this, and R[N+6]=0, the value of the
current frame is not recorded in PR[M+5].
Applying the Frame to Programs
The program that the user creates will be taught in the User frame defined by MIG_FRAME
application. Positions for the robot program get trained with respect to the nominal user
frame.
In Example 1-19 , this application is used to update the user frame that is defined by features
of the part being welded. The first time this code is executed, line 26 should have "R[17]=1"
set to the nominal frame in PR[6]. Line 27 calculates a frame. In line 29, the value of R[1] is
copied to User Frame two, and in line 29 the default Uframe is set to User Frame two.
When the move to P[6] is executed, the position will be shifted by the difference between the
nominal frame and the current frame so that the TCP is correctly positioned on the current
part.
1-85

1. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR

A-83971

Example 1-19. Example Program with MIG_FRAME

Example Program
1: UF = 1
2: J P[1] 100% Fine
3: J P[2] 100% Fine
4: SENSOR SEARCH START PR[2]
5: SENSOR SEARCH POINT [1]
6: SENSOR SEARCH END
7: J P[3] 100% Fine
8: SENSOR SEARCH START PR[3]
9: SENSOR SEARCH POINT [1]
10: SENSOR SEARCH END
11: J P[4] 100% Fine
12: SENSOR SEARCH START PR[4]
13: SENSOR SEARCH POINT [1]
14: SENSOR SEARCH END
15: J P[5] 100% Fine
16: SENSOR SEARCH START PR[5]
17: SENSOR SEARCH POINT [1]
18: SENSOR SEARCH END
19: R[32] = 11
20: R[11] = 1
21: R[12] = 0
22: R[13] = 1
23: R[14] = 0
24: R[15] = 2
25: R[16] = 30
26: R[17] = 0
27: CALL MIG_FRAME
28: IF R[14] = 0 JUMP LBL[99]
29: UFRAME[2] = PR[1]
30: UFRAME_NUM = 2
31: J P[6] 100% Fine
32: LBL[99]

1.9.7

Sample Applications
This section contains sample applications.
MIG_CROSS and MIG_VECTOR Application
Four points 1, 2, 3, and 4 are searched for by using MIG_CROSS and MIG_VECTOR. Then,
welding of a desired length can be performed from point A toward point B. See Figure 1-40 .

1-86

1. ADAPTIVE WELDING WITH SERVOROBOT SENSOR


Figure 1-40. MIG_CROSS and MIG_VECTOR Application

In the sample program shown in Example 1-20 , calculated positions A and B are indicated in
lines 38 and 39.
Example 1-20. MIG_CROSS and MIG_VECTOR Sample Program

Example Program
1: J P[1] 100% FINE
2: J P[2] 100% FINE
3: SENSOR SEARCH START PR[2]
4: SENSOR SEARCH POINT [1] LBL[99]
5: SENSOR SEARCH END
6: J P[3] 100% FINE
7: SENSOR SEARCH START PR[3]
8: SENSOR SEARCH POINT [2] LBL[99]
9: SENSOR SEARCH END
10: J P[4] 100% FINE
11: SENSOR SEARCH START PR[4]
12: SENSOR SEARCH POINT [3] LBL[99]
13: SENSOR SEARCH END
14: J P[5] 100% FINE
15: SENSOR SEARCH START PR[5]
16: SENSOR SEARCH POINT [4] LBL[99]
17: SENSOR SEARCH END
18: R[32] = 11
19: R[11] = 1
20: R[12] = 0
21: R[13] = 1
22: R[14] = 0
23: R[15] = 1
24: R[17] = 1
25: CALL MIG_CRS
26: IF R[14] = 0 JUMP LBL[99]
27: R[32] = 21
28: R[21] = 1
29: R[22] = 0
30: R[23] = 7
1-87

1. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR

A-83971

31: R[24] = 0
32: R[25] = 50
33: PR[8] = PR[1]
34: PR[9] = PR[5]
35: CALL MIG_VECTOR
36: IF R[24] = 0 JUMP LBL[99]
37: J P[6] 100% FINE
38: J PR[1:A] 100% FINE
39: J PR[7:B] 100% FINE
40: J P[7] 100% FINE
41: LBL[99]
[End]

MIG_CROSS and MIG_FRAME Application


Four points 1, 2, 3, and 4 are searched for by using MIG_CROSS and MIG_FRAME.
According to the data, a new coordinate system is specified. Then, welding can be performed
along preset segments connecting points A, B, C, D, and E. See Figure 1-41 .
Figure 1-41. MIG_CROSS and MIG_FRAME Application

In the sample program shown in Example 1-21 through Figure 1-43 , points A to E are
specified on lines 31 to 35.

1-88

1. ADAPTIVE WELDING WITH SERVOROBOT SENSOR


Example 1-21. MIG_CROSS and MIG_FRAME Sample Program

Example Program
1: UFRAME_NUM = 1
2: J P[1] 100% FINE
3: J P[2] 100% FINE
4: SENSOR SEARCH START PR[2]
5: SENSOR SEARCH POINT [1] LBL[99]
6: SENSOR SEARCH END
7: J P[3] 100% FINE
8: SENSOR SEARCH START PR[3]
9: SENSOR SEARCH POINT [2] LBL[99]
10: SENSOR SEARCH END
11: J P[4] 100% FINE
12: SENSOR SEARCH START PR[4]
13: SENSOR SEARCH POINT [3] LBL[99]
14: SENSOR SEARCH END
15: J P[5] 100% FINE
16: SENSOR SEARCH START PR[5]
17: SENSOR SEARCH POINT [4] LBL[99]
18: SENSOR SEARCH END
19: R[32] = 11
20: R[11] = 1
21: R[12] = 0
22: R[13] = 1
23: R[14] = 0
24: R[15] = 2
25: R[16] = 30
26: R[17] = 0
27: CALL MIG_FRAME
28: IF R[14] = 0 JUMP LBL[99]
29: UFRAME[2] = PR[1]
30: UFRAME_NUM = 2
31: L P[6:A] 10mm/sec FINE
32: L P[7:B] 10mm/sec FINE
33: L P[8:C] 10mm/sec FINE
34: L P[9:D] 10mm/sec FINE
35: L P[10:E] 10mm/sec FINE
36: UFRAME_NUM = 1
37: J P[11] 100% FINE
38: J P[12] 100% FINE
39: LBL[99]
[End]

1-89

1. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR

Example 1-22. WELD01.TP

Example Program
1: R[1]=AR[1]
2: R[2]=AR[2]
3: IF R[2]=1,JMP LBL[3]
4:
5: IF R[1]>1,JMP LBL[2]
6: ! ROOT PASS
7: SENSOR SEARCH START PR[3]
8: SENSOR SEARCH POINT[3]
9: SENSOR SEARCH END
10:
11: Track SENSOR[3] RPM[3]
12: L PR[3] 20mm/sec FINE
: Arc Start[99]
13: Weave Sine[99]
14: L P[4] WELD_SPEED FINE
: Arc End[99]
15: Weave End
16: Track End
17: J P[5] 10% FINE
18: END
19:
20: LBL[2:OTHER PASSES]
21: MP Offset PR[99] RPM[3]
22: J PR[3] 10% FINE
: Arc Start[99]
23: Weave Sine[99]
24: L P[4] WELD_SPEED FINE
: Arc End[99]
25: Weave End
26: MP Offset End
27: J P[5] 10% FINE
28: END
29:
30:
31: LBL[3:REVERSE PASSES]
32: LOCK PREG
33:J P[5] 10% FINE
34: MP Offset PR[99] RPM[3]
35:L P[4] 200mm/sec FINE
: Arc Start[99]
36: Weave Sine[99]
37:L PR[3] WELD_SPEED FINE
: Arc End[99]
1-90

A-83971

1. ADAPTIVE WELDING WITH SERVOROBOT SENSOR


38: MP Offset End
39:J P[1] 10% FINE
40: UNLOCK PREG
[END]

Figure 1-42. WELD01.TP (Continued)

1-91

1. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR

Figure 1-43. Adaptive Welding Applications

1-92

A-83971

1. ADAPTIVE WELDING WITH SERVOROBOT SENSOR

Chapter 2
ADAPTIVE WELDING WITH OTHER SEAM
TRACKING SENSORS
2.1

Overview
It is possible to connect other sensors than Servo Robot to the FANUC controller for the
operation of seam finding/seam tracking.
Please contact your local FANUC representative to be informed on currently supported
sensors.

2.1.1

Limitations
Same limitations as described in Section 1.1.1 apply when using another sensor than
Servo-Robot.
Function provided by Servo-Robot may not be available with other Sensors (i.e. Break
points information).

2.2

Installing the sensor


Setup your sensor according to the manufacturer start-up procedure, to make it ready to
communicate with the FANUC controller.
You may have to connect E-Stop device between the Sensor controller and FANUC
controller. Please refer to the sensor manufacturer documentation.
In case of doubt for the connection on FANUC controller please contact you local FANUC
representative.

2.2.1

Communication Connection
Depending on the sensor you are using you may choose one of the following procedure to
setup the communication between camera controller and FANUC controller.
For RS-232C refer to Section 1.2.4.1 RS-232C Communication
For Ethernet refer to Section 1.2.4.2 Ethernet Communication
2-93

1. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR

2.3

Sensor Setup
From now on please refer to section 1.3 SENSOR SETUP for the next steps.
Same calibration procedure can be used whatever the sensor you are using.
Setup and programming are working in the same way as described in Chapter 1.

2-94

A-83971