You are on page 1of 103

Chapter 23

ADAPTIVE WELDING WITH SERVO-ROBOT


SENSOR

Contents

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


23.1 OVERVIEW ............................................................................................... 23–3
23.1.1 Limitations of the Servo-Robot Sensor Interface ..................................... 23–4
23.2 INSTALLING THE SERVO-ROBOT SENSOR AND SOFTWARE ................. 23–5
23.2.1 Additional Requirements ......................................................................... 23–6
23.2.2 E-Stop Connection ................................................................................... 23–6
23.2.3 Laser Warning Light ................................................................................. 23–7
23.2.4 Communication Connection .................................................................... 23–7
23.3 SENSOR SETUP ..................................................................................... 23–10
23.3.1 Overview ................................................................................................ 23–10
23.3.2 Tool Frame Setup ................................................................................... 23–10
23.3.3 Setting Up the Tool Frame ..................................................................... 23–11
23.3.4 Checking the Tool Frame Setting ........................................................... 23–11
23.3.5 Setting Up the Sensor Frame Using the Direct Entry Method ................ 23–11
23.3.6 Setting Up the Sensor Frame Using the Ten Point Teaching
Method .................................................................................................... 23–12
23.3.7 Setting Up the Sensor System ............................................................... 23–23
23.4 SENSOR DATA AND STATUS ................................................................. 23–25
23.4.1 Overview ................................................................................................ 23–25
23.4.2 Sensor Schedule Setup ......................................................................... 23–25
23.4.3 Motion Sensitivity .................................................................................. 23–28
23.4.4 Sensor Schedules .................................................................................. 23–31
23.4.5 Detection Log ........................................................................................ 23–32
23.5 SETTING WELD PROCESS DATA FOR MULTI-PASS ADAPTIVE
WELDING ................................................................................................ 23–35
23.5.1 Setting Up Multi-Pass Data .................................................................... 23–35
23.5.2 Setting Up the Adapt Data ...................................................................... 23–40

23–1
23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR MAROC73AR04071E REV A

23.6 PROGRAMMING ..................................................................................... 23–46


23.6.1 Search .................................................................................................... 23–46
23.6.2 Search Schedule .................................................................................... 23–48
23.6.3 Offset Instructions ................................................................................. 23–48
23.6.4 Search Programming ............................................................................. 23–49
23.6.5 Track ...................................................................................................... 23–62
23.6.6 Track Schedule ...................................................................................... 23–62
23.6.7 Track Programming ............................................................................... 23–62
23.7 ROOT PASS MEMORIZATION AND MULTI-PASS .................................... 23–73
23.7.1 Root Pass Memorization ........................................................................ 23–74
23.7.2 Using Multi-Pass with Adaptive Welding ............................................... 23–77
23.7.3 Programming ......................................................................................... 23–78
23.8 ADAPTIVE WELDING ............................................................................. 23–82
23.9 SENSOR APPLICATION SOFTWARE ..................................................... 23–88
23.9.1 Setup ..................................................................................................... 23–88
23.9.2 MIG_CRS ............................................................................................... 23–89
23.9.3 MIG_CRS2 .............................................................................................. 23–91
23.9.4 MIG_VECTOR ......................................................................................... 23–92
23.9.5 MIG_CIRCLE .......................................................................................... 23–94
23.9.6 MIG_FRAME ........................................................................................... 23–96
23.9.7 Sample Applications .............................................................................. 23–98

23–2
MAROC73AR04071E REV A 23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR

23.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.

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 to connect the Servo-Robot sensor interface to an RS-232C- 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 point method.
• Write and execute a program that contains Multi-Pass and Adaptive Welding data and track/offset
instructions.

Figure 23–1 shows a basic adaptive welding system.

23–3
23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR MAROC73AR04071E REV A

Figure 23–1. Basic Adaptive Welding System

Servo Robot
User Interface
WinUser software • Track/Offset Instructions
• Track Schedules
• Adaptive Schedules

SETUP PowerWave 455/R JOINT 10 %


Weld Mode: GMAW–P
Electrode Material: Steel
Electrode Diameter: 0.045”
Gas Composition: Ar/CO2 mix
Procedure: 22

Serial Line / Robo 2000


[ TYPE ] CHOICE HELP

Serial Line

• Sensor setup
• Joint Library Weld
(PC Not required Power
during production) Supply
+ –
Servo
Robot
Control
• Sensor Control • Servo Robot Sensor Interface
• Metrology • Arc Vision Seam Tracking
• Template Matching • Adaptive Weld/Weave
• RPM/MP

23.1.1 Limitations of the Servo-Robot Sensor Interface

• You can use 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 KBaud.
• There is no support with the Servo-Robot sensor for stationary tracking. This means that the
robot carrying the sensor must have some motion.

23–4
MAROC73AR04071E REV A 23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR

• 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.
• Tracking motion with integral extended axes beyond one (a seventh axis such as an integral
rail) is not qualified.

23.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.

23–5
23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR MAROC73AR04071E REV A

23.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:

• Servo-Robot E-Stop connection


• Laser Warning Light
• Communication Connection

23.2.2 E-Stop Connection

Connect the Servo Robot control to the robot controller using the wiring diagram shown in Figure
23–2 .

Figure 23–2. Servo-Robot E-Stop Connection Wiring Diagram

Sensor Controller
Connector CN3 Controller
Operator Panel Board
D

B
EMGIN2

A
EMGIN1
+24V

24V Relay

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.

23–6
MAROC73AR04071E REV A 23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR

23.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 23–3 . Refer to the Servo-Robot documentation for specifications on
connector CN4.

Figure 23–3. Attaching the Laser Warning Light

Servo-Robot Sensor Controller Stack Light


Connector CN4

Controller
A
Operator Box

External Power
Supply

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.

23.2.4 Communication Connection

Connect the communications cable to the Servo-Robot controller box from the robot controller
using the wiring diagram shown in Figure 23–4 .

23–7
23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR MAROC73AR04071E REV A

Figure 23–4. Communication Connection Wiring Diagram

Sensor Controller Controller


Operator Panel Board
Connector CN6
Port 2

Null Modem

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 23-1 and Procedure 23-2 below to configure and verify the controller to sensor
controller communication.

Procedure 23-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:

23–8
MAROC73AR04071E REV A 23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR

• 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.

Procedure 23-2 Validating Communications

Conditions

• The controller is properly configured with the Servo-Robot software option installed.
• A full NULL modem cable is installed between the Smart Box CN6 port and the controller
communication port P2 or P3.
• 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 Communication Validation Program .

Communication Validation Program

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

2. Execute the program in Communication Validation Program .

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.

23–9
23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR MAROC73AR04071E REV A

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)

23.3 SENSOR SETUP

23.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 4.1 for information on setting up a tool frame. Refer to
Section 23.3.6 to set up the sensor frame with the ten point 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 23.3.5

23.3.2 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. Refer
to Section 4.1.2 to set up the tool frame using the six point method.

23–10
MAROC73AR04071E REV A 23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR

23.3.3 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).

23.3.4 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.

23.3.5 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 23-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 23-5 .

Table 23–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 23-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].

23–11
23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR MAROC73AR04071E REV A

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

SETUP Sensor Frame


Sensor Frame Setup/Direct Entry 1/6
Frame : Sensor

1 X: 0.000
2 Y: 0.000
3 Z: 0.000
4 W: 0.000
5 P: 0.000
6 R: 0.000

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 2/6
Frame : Sensor

1 X: 202.321
2 Y: 1042.
3 Z: 0.000
4 W: 0.000
5 P: 0.000
6 R: 0.000

23.3.6 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 1 st and 2 nd TCP reference points establish a vector of known length

23–12
MAROC73AR04071E REV A 23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR

on the reference/calibration joint. The robot moves between the 3 rd through 10 th 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 23–5 ,
and SEARCH.TP, shown in Figure 23–6 .

Figure 23–5. LASON.TP

LASON
1/2
1: SENSOR ON[1]
[End]

Figure 23–6. SEARCH.TP

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

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 23–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 23-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 23–2 for Servo-Robot Schedule Screen setup items.

23–13
23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR MAROC73AR04071E REV A

Table 23–2. SERVO-ROBOT Schedule Screen Items

ITEM DESCRIPTION

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

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

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 This item specifies how reactive the robot motion system will be to sensor data. A low value
Sensitivity 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.

Motion Motion # of Acceptable


Sensitivity Buffer Distance Failed Scans
1 25 mm 11 FAIL
2 20 mm 9 FAIL
3 15 mm 6 FAIL
4 10 mm 4 FAIL
5 8 mm 3 FAIL

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 Stationary tracking is not currently available.


Frame

Tack Avoidance This item allows you to specify whether the tack welding avoid function is enabled or
Default: FALSE disabled.

Tack Threshold This item allows you to specify the tack width (mm) from the weld line of the detected
Default: 0 mm position.
Range: 0-100
mm

Tack Length This item specifies the maximum length of the tack-welded section in the direction of
Default: 0 mm the weld line. If the detection of no position or of a position far from the tack threshold
Range: 0-500 continues, exceeding this length, an alarm is raised to stop the program. Specify the length
mm in millimeters.

23–14
MAROC73AR04071E REV A 23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR

Table 23–2. SERVO-ROBOT Schedule Screen Items (Cont’d)

SR Search Joint This item selects the joint number from the Servo-Robot’s joint library for searching
Num 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 Specifies the number of retry motions that will automatically be performed. If the value is 0 ,
Range: 0-5 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 23-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.

Steps

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

23–15
23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR MAROC73AR04071E REV A

SERVO ROBOT Sch.


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

2. 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 1
3 Tracking Type Standard
4 Motion Sensitivity 3
5 Y-Bias (mm) 0.00
6 Z-Bias (mm) 0.00
7 Stationary Track Frame 0
8 Tack Avoidance Disable
9 Tack Threshold(mm) 2.00
10 Tack Length (mm) 40.00
Search Setup
11 SR Search Joint Num 1
12 Search Type Position
13 Detection Count 3
14 Retry Count 0
15 Retry Direction X
16 Retry Distance (mm) 3.0
17 Y-Bias (mm) 0.00
18 Z-Bias (mm) 0.00

3. Set the Search Setup data in the schedule as follows:

• SR Search Joint Num is the joint library number in the Servo-Robot controller. This must
correspond to the reference joint used in the ten point calibration method.

23–16
MAROC73AR04071E REV A 23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR

• 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 23.4 for further details.
• Set Y-Bias and Z-Bias to 0.

Figure 23–7. Teaching Reference Positions for Sensor Calibration

Welding
Torch Sensor

Reference
Point 1 X

X
Workpiece
Side X

Workpiece View from the Workpiece Front


Reference Front
Point 2

Items 2-10 contain tracking data, and items 11-18 contain search data. Refer to Section 23.4 for a
description of the items on this screen.

Table 23–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 1 This item allows you to teach the TCP reference points.
and 2

Reference Pair 1-4 This item allows you to record the reference positions for calibration.

Procedure 23-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.

23–17
23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR MAROC73AR04071E REV A

• 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 Servo-Robot sensor
ON/OFF functions with the WinUser software on your PC.
• A Servo-Robot joint definition exists in the Serv-oRobot joint library for the calibration joint.
• You have set up a sensor schedule that uses the joint number defined in the Servo-Robot joint
library.
• In this example a lap joint is used to calibrate the sensor frame. You must set Track 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 X: 0.000
2 Y: 0.000
3 Z: 0.000
4 W: 0.000
5 P: 0.000
6 R: 0.000

5. Press F2, [METHOD].


6. Select Ten Point.

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 23–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.

23–18
MAROC73AR04071E REV A 23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR

SETUP Sensor Frame


Sensor Frame Setup/Direct Entry 1/10
Sensor X: 0.0 Y: 0.0 Z: 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

7. 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.
8. Move the cursor to the TCP reference Point 1.
9. Without changing the robot orientation, move the robot along the joint to the second reference
position. Record Reference Point 2.
10. See Figure 23–8 for an illustration of teaching reference points for Pair 1.

Figure 23–8. Teaching Pair 1

Pair 1 Pair 1 Pair 2


Point 1 Pair 1 Point 1 Point 2
Point 2
X

X
Workpiece
Scan Front
Line View from the Workpiece Front

Workpiece
Side Scan
Line

23–19
23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR MAROC73AR04071E REV A

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 1 st 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 2 nd 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 23–9 for an illustration of teaching reference points for Pair 2.

Figure 23–9. Teaching Pair 2

Torch and Sensor


rotated about the
TCP New orientation
Reference of torch and
Point 1 Servo-Robot
sensor Pair 2 Pair 2
X Point 2 Point 1

X
View from the Workpiece Front
Original
orientation of
Workpiece
torch and
Front
Servo-Robot
Sensor
Workpiece Reference
Side Point 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.

23–20
MAROC73AR04071E REV A 23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR

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 2 nd 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 23–10 for an illustration of teaching reference points for Pair 3.

Figure 23–10. Teaching Pair 3

Same orientation with with


different X, Y, and Z offsets.
Pair 3 Pair 3
Point 1 Point 2

View from the Workpiece Front

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 1 st
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 2 nd
reference mark. It should be offset by different amounts or directions compared to Pair 3-Point
1. As before, the scan line must cross exactly on the reference mark. Record Pair 3-Point 2.
33. Move the cursor to reference pair 3, point 2. Press F5, RECORD to record Pair 3, Point 2.
34. See Figure 23–11 for an illustration of teaching reference points for Pair 4.

23–21
23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR MAROC73AR04071E REV A

Figure 23–11. Teaching Pair 4

Point 4 Point 4

View from the Workpiece Front

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 1 st
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 2 nd
reference mark. It should be offset by different amounts or directions compared to Pair 4-Point
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

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.

23–22
MAROC73AR04071E REV A 23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR

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. 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.

23.3.7 Setting Up the Sensor System

Before using the Servo-Robot Sensor, you must set sensor system parameters correctly.

Table 23–4 lists the Servo-Robot sensor setup items you must define. Refer to Chapter 19 ROOT
PASS MEMORIZATION AND MULTI-PASS for information about RPM. Refer to Section 23.6.7 for
more information on automatic error recovery.

Table 23–4. Servo-Robot Sensor Setup items

ITEM DESCRIPTION

Use Rotator This item defines whether the system has a rotator. If a rotator is installed, select
TRUE. If a rotator is not installed, select FALSE. 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 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. A setting of zero disables this feature.
(RESET will turn this output OFF)

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.

23–23
23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR MAROC73AR04071E REV A

Table 23–4. Servo-Robot Sensor Setup items (Cont’d)

ITEM DESCRIPTION

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 23-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/10


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

5. Select each item and set it as desired.

23–24
MAROC73AR04071E REV A 23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR

23.4 SENSOR DATA AND STATUS

23.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.

23.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 23–12 shows an example sensor schedule LIST screen. Figure 23–13 shows an example
sensor DETAIL screen, which displays the parameters for each schedule. Refer to Table 23–5 for
a description of the schedule items.

Figure 23–12. Sensor Schedule LIST Screen

SERVO ROBOT Sch.


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

23–25
23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR MAROC73AR04071E REV A

Figure 23–13. Sensor Schedule DETAIL Screen

SERVO ROBOT Sch.


1/18
.
1 Servo Robot Schedule:1\ [********]

Tracking Setup
2 SR Track Joint Num 1
3 Tracking Type Standard
4 Motion Sensitivity 3
5 Y-Bias (mm) 0.00
6 Z-Bias (mm) 0.00
7 Stationary Track Frame 0
8 Tack Avoidance Disable
9 Tack Threshold(mm) 2.00
10 Tack Length (mm) 40.00
Search Setup
11 SR Search Joint Num 1
12 Search Type Position
13 Detection Count 1
14 Retry Count 0
15 Retry Direction X
16 Retry Distance (mm) 3.0
17 Y-Bias (mm) 0.00
18 Z-Bias (mm) 0.00

Table 23–5. Sensor Schedule Items

ITEM DESCRIPTION

Servo-Robot Schedule: This item identifies the sensor schedule and provides an area in which to add
[Comment] 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.

23–26
MAROC73AR04071E REV A 23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR

Table 23–5. Sensor Schedule Items (Cont’d)

ITEM DESCRIPTION

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.

Motion Motion # of Acceptable


Sensitivity Buffer Distance Failed Scans
1 25 mm 11 FAIL
2 20 mm 9 FAIL
3 15 mm 6 FAIL
4 10 mm 4 FAIL
5 8 mm 3 FAIL

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 This item allows you to specify whether the tack welding avoid function is enabled
Default: FALSE or disabled. For the tack welding avoid function, refer to Tack Welding function
in Section 23.6.7

Tack Threshold This item allows you to specify the tack width (mm) from the weld line of the
Default: 0 mm detected position.
Range: 0-100 mm

Tack Length This item specifies the maximum length of the tack-welded section in the direction
Default: 0 mm of the weld line. If the detection of no position or of a position far from the tack
Range: 0-500 mm threshold continues, exceeding this length, an alarm is raised to stop the program.
Specify the length in millimeters.

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

23–27
23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR MAROC73AR04071E REV A

Table 23–5. Sensor Schedule Items (Cont’d)

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 23.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 Specifies the number of retry motions that will automatically be performed. If the
Range: 0-5 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.

23.4.3 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
23–14 .

23–28
MAROC73AR04071E REV A 23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR

Figure 23–14. Track Length and the Ratio Between the Front and the Rear Areas

Mechanical Interface
Coordinate System
X

Z
Laser
light
X Nominal work surface

Back distance
Front distance

Motion buffer distance

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 23–6 .

23–29
23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR MAROC73AR04071E REV A

Table 23–6. Ratio Settings

Motion 1 2 3 4 5
Sensitivity

Front : Rear 7:18 7:13 7:8 5:5 4:4

Motion buffer 25 20 15 10 8
distance (mm)

Number of 11 9 6 4 3
consecutive
failed scans

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 23-7 to set up a sensor schedule.

Procedure 23-7 Setting Up a Sensor Schedule

Steps

1. Press MENUS.
2. Select DATA.
3. Press F1, [TYPE].
4. 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.
5. If F3, LIST, is displayed, press it to display the following screen.

SERVO ROBOT Sch.


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

23–30
MAROC73AR04071E REV A 23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR

6. To display the items in the DETAIL screen , 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 1
3 Tracking Type Standard
4 Motion Sensitivity 3
5 Y-Bias (mm) 0.00
6 Z-Bias (mm) 0.00
7 Stationary Track Frame 0
8 Tack Avoidance Disable
9 Tack Threshold(mm) 2.00
10 Tack Length (mm) 40.00
Search Setup
11 SR Search Joint Num 1
12 Search Type Position
13 Detection Count 1
14 Retry Count 0
15 Retry Direction X
16 Retry Distance (mm) 3.0
17 Y-Bias (mm) 0.00
18 Z-Bias (mm) 0.00

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


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

23.4.4 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 23-8 to
change the number of sensor schedules.

Procedure 23-8 Changing the Number of Sensor Schedules

Steps

1. Press MENUS.
2. Select SYSTEM.

23–31
23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR MAROC73AR04071E REV A

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.
8. Perform a Controlled start. Refer to Appendix B .

23.4.5 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 23–15. Detection Data Equation

lead distance (mm)


sampling rate + number of scans to TCP data
robot speed (mm/sec)

Sampling rate is determined (in milliseconds) by the system variable $SR_SETUP.$update_time.


Sampling rate is calculated using the equation shown in Figure 23–16 .

Figure 23–16. Sampling Rate Equation

sampling rate + 1
$SR_SETUP.$update_time

An example of the detection formula is shown in Figure 23–17 .

23–32
MAROC73AR04071E REV A 23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR

Figure 23–17. Example Detection Data Calculation

50 (mm)
10 (scan/sec) + 25 scans
20 (mm/sec)

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.

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

Table 23–7. Detection Log Data

DETECTION LOG DATA DESCRIPTION

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.

23–33
23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR MAROC73AR04071E REV A

Procedure 23-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 Detect Log

CODE X Y Z GAP
1 0T0 0.00 0.00 0.00 0.00
2 0T0 0.00 0.00 0.00 0.00
3 0T0 0.00 0.00 0.00 0.00

Note Keep in mind the following information:

• 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.

Caution

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

3. To clear the entire detection log , press SHIFT and F3, CLEAR.
4. To display HELP , move the cursor to the desired detection index, and press F5, HELP. See the
following screen for an example.

23–34
MAROC73AR04071E REV A 23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR

$DTCT_CODE = 4
Insuficient good data.
STATUS Detect Log
Code X Y Z Gap
2 0T 0 14.25 19.23 -33.6 11.48
3 4T 0 44.78 -.79 139.9 0.00
4 4T 0 44.78 -.79 139.9 0.00
5 4T 0 44.78 -.79 139.9 0.00
6 4T 0 44.78 -.79 139.9 0.00
7 4T 0 44.78 -.79 139.9 0.00

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

23.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 23.5.1 and Section 23.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.

23.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 23-10 to set up multi-pass data.

Note Be aware of the following with regard to Procedure 23-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.”

23–35
23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR MAROC73AR04071E REV A

Procedure 23-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
1032988 bytes free 9/9
No. Program name Comment
1 -BCKEDT- [ ]
2 LASON [ ]
3 PART01 [ ]
4 PART01A [ ]
5 SEARCH [ ]
6 TEST [ ]
7 TESTMAIN [ ]
8 WELD01 [ ]
9 WELD01A [ ]

2. Press F2, DETAIL. You will see a screen similar to the following.

Program detail
1/5
Creation Date: 2-Feb-xxxx
Modification Date: 2-Feb-xxxx
Copy Source: [ ]
Positions: TRUE Size: 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.

23–36
MAROC73AR04071E REV A 23. ADAPTIVE WELDING WITH SERVO-ROBOT 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 23.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 1/6
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. Press F4, EXIT, or PREV to return to the Multi-pass Data List.

23–37
23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR MAROC73AR04071E REV A

6. To view the weave schedules,


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

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. Press F4, EXIT, or PREV to return to the Multi-pass Data List.


7. 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 23.5.2 . Refer
Chapter 19 ROOT PASS MEMORIZATION AND MULTI-PASS 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 Section
3.7 for more information on run-in.

23–38
MAROC73AR04071E REV A 23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR

Program detail
Run-in schedules 1/6
Pass Trim IPM Sec
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

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 Section 3.7 for more
information on burnback.

Program detail
Burnback schedules 1/6
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. 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/6
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

23–39
23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR MAROC73AR04071E REV A

b. 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/6

Pass Number: 1
1 Program select: 1 [ ]
2 Command Trim 85.00 Trim
3 Command Wire feed 300.00 IPM
4 Travel speed 40 IPM
5 Delay Time 0.00 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.
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 Weld
2 Weave
3 Offsets
4 Run-in
5 Burnback
6 Crater fill

23.5.2 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

23–40
MAROC73AR04071E REV A 23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR

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 23-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 23.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 23–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 23–18 .

Figure 23–18. V Groove Joint with Six Breakpoints

mismatch
B0 B1
B5
B4
B1–B2 (Z)
area
B2
B3

B1–B2 (Y)
gap

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)

23–41
23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR MAROC73AR04071E REV A

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

Procedure

Use Procedure 23-11 to set up the joint data and limits.

Note Please be aware of the following with regard to Procedure 23-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 23-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.

Program detail
Adapt data 1/5
Program name: WELD01

1 Joint type: CORNER


2 Joint data & limits: <*DETAIL*>
3 Proc limits & constants: <*DETAIL*>
4 Pass specific data: <*DETAIL*>
5 Algorithm .PC file: [*uninit*]

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


5. Set the joint data and limits:
a. 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 adn set the nominal, low, and

23–42
MAROC73AR04071E REV A 23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR

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 1/8
Variable Nominal Low High Error
(mm) (mm) (mm)
1 Gap 0.0 0.0 0.0 NONE
2 Mismatch 0.0 0.0 0.0 NONE
3 Area(mm^2) 0.0 0.0 0.0 NONE
4 S1: **- *** 0.0 0.0 0.0 NONE
5 S2: **- *** 0.0 0.0 0.0 NONE
6 S3: **- *** 0.0 0.0 0.0 NONE
7 S4: **- *** 0.0 0.0 0.0 NONE
8 S5: **- *** 0.0 0.0 0.0 NONE

b. 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.
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.

23–43
23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR MAROC73AR04071E REV A

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 23.8 for a description of the adaptive welding algorithm.
f. When you are finished setting data, press F4, EXIT, or PREV to display the Adapt data
screen.
6. 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 pass-specific 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.

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.

23–44
MAROC73AR04071E REV A 23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR

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. If desired, modify the names for the Global and Pass Specific Constants.
d. When you are finished setting data, press F4, EXIT, or PREV to display the Adapt data
screen.
7. Set the pass specific data:
a. Move the cursor to Pass specific data and press ENTER. You will see a screen similar to
the following.

Detail Weld Sch


Pass specific data 1/6
Pass CP1 CP2 CP3 WELD WEAVE
1 1.00 1.00 0.00 DISABLE DISABLE
2 0.00 0.00 0.00 DISABLE DISABLE
3 0.00 0.00 0.00 DISABLE DISABLE
4 0.00 0.00 0.00 DISABLE DISABLE
5 0.00 0.00 0.00 DISABLE DISABLE
6 0.00 0.00 0.00 DISABLE DISABLE

b. 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. When you are finished setting data, press F4, EXIT, to display the Adapt data screen.
8. Set the algorithm .PC file:

The .PC file is a KAREL program that runs the adaptive algorithm. Refer to Section 23.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.
a. Move the cursor to select one of the ____ALGO.PC algorithm files and press ENTER.

23–45
23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR MAROC73AR04071E REV A

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

23.6 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

23.6.1 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] orSENSOR SEARCH POINT [i] LBL [i]
• SENSOR SEARCH END

23–46
MAROC73AR04071E REV A 23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR

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 occur. 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.

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.

23–47
23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR MAROC73AR04071E REV A

• 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:

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

23.6.2 Search Schedule

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

23.6.3 Offset Instructions

This section describes the following SENSOR OFFSET instructions.

• SENSOR OFFSET START PR[i]


• SENSOR OFFSET END

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

23–48
MAROC73AR04071E REV A 23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR

points that follow to align them with the found location of the joint. Refer to Section 23.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.

23.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:

23–49
23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR MAROC73AR04071E REV A

• 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

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 Section 23.4.2 .

23–50
MAROC73AR04071E REV A 23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR

Table 23–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.

2 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 Offset Type Search contains an example of an offset type search.

Example Offset Type Search

Instruction Description
J P[1] 50% CNT100
L P[2] 80mm/sec FINE Move to first search position
SENSOR SEARCH START PR[1]
SENSOR SEARCH POINT[3]
J P[3] 40% CNT100
J P[4] 40% CNT100
J P[5] 40% FINE Move to second search position
SENSOR SEARCH POINT[4]
SENSOR SEARCH END
SENSOR OFFSET START PR[1]
L P[6] 100mm/sec FINE
Arc Start[2]L P[8] 25mm/sec CNT100 Weld first path
Arc End[2]J P[9] 40% FINE Reposition for second path
Arc Start[3]L P[10] 25mm/sec CNT100 Weld second path
Arc End[3]
SENSOR OFFSET END
J P[1] 50% FINE

$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.

23–51
23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR MAROC73AR04071E REV A

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 23–19 . This assumes the part plane will
always be parallel to the original.

Figure 23–19. $MIG_CALFLG = 1

Original part location

P1 Z2 P2

If $MIG_CALFLG=2 , the z height is calculated as a frame rotation about the first searched 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 23–20 .

Figure 23–20. $MIG_CALFLG = 2

Original part location

P2
P1 Z2

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 23–21 .

23–52
MAROC73AR04071E REV A 23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR

Figure 23–21. $MIG_CALFLG = 3

Original part location

P1 Z2 P2
Z1

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.
• Choose the offset search type to offset one or more points in a weld path. This is typically
used for short welds.
2. Program the desired operation.
3. Test the program.
4. Run the program in production.

One Search Point - Position Type Output

A 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.

23–53
23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR MAROC73AR04071E REV A

In One Position Search - Position Type for Weld Start Position Example , 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 23–22 illustrates the program example.

Note For this kind of operation, the search type is set to POSITION in the sensor schedule.

One Position Search - Position Type for Weld Start Position Example

Instruction Description
J P[1] 50% FINE Move to P[1]
SENSOR SEARCH START PR[4] Start Search Routine
SENSOR SEARCH POINT[2] Search joint, use Schedule [2]
SENSOR SEARCH END Stop search routine, calculate pos.PR[4]
L PR[4] 50% FINE
MOVE TO PR[4]
Arc Start [3]
Track SENSOR [2]
L P[2] 35mm/sec FINE
ARC END[3]
TRACK END

Figure 23–22. One Position Search - Position Type for Weld Start Position

TCP at taught position P[1]

Laser Scan Lead distance

PR[4] position is here

PR[2]
Y
X
TCP

One Search Point - Offset Type Output

23–54
MAROC73AR04071E REV A 23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR

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 One Position Search - Position Type for Weld Start Position Example and
Example Program for Offset Type Search with Y Z Output 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 ( One Position Search - Position Type for Weld Start Position Example , for
example) should be altered to apply an offset PR[4] rather than moving to PR[4]. Example Program
for Offset Type Search with Y Z Output shows the programming for a five-sided part identified in
Figure 23–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 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 MIG EYE offset
18: J P[1] 100% FINE

Note P[1], P[2], and P[4], not shown in Figure 23–23 , are the approach and search points.

23–55
23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR MAROC73AR04071E REV A

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

P[7]
P[6] P[5]
P[10]

.
P[8]
Y
X
P[9]

P[3] Search Scan


TCP Location for search

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 Program for Offset Type Search with X, Y, Z, Output contains a program example of this
kind of search. Figure 23–24 illustrates the program. For example, by starting with the one-point
search program in Example Program for Offset Type Search with X, Y, Z, Output , 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 Program for Offset Type Search with X, Y, Z, Output

Instruction Description
J P[1] 100% CNT100
J P[2] 100% FINE
SENSOR SEARCH START PR[3] Start search routine
J P[3] 40% FINE Move to first search point P[3]
SENSOR SEARCH POINT[1] Search joint, schedule [1]
P[11] 40% FINE Move to second search point P[11]
SENSOR SEARCH POINT[2] * Search joint, schedule[2]
SENSOR SEARCH END Stop search routine, calculate offset
J P[4] 100% FINE
SENSOR Offset START PR[3] Start point for applying offset

23–56
MAROC73AR04071E REV A 23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR

J P[5] 100% FINE ARC START [1]


L P[6] 20mm/sec CNT100
L P[7] 20mm/sec CNT100
L P[8] 20mm/sec CNT100
L P[9] 20mm/sec CNT100
L P[10] 20mm/sec FINE ARC END [1]
SENSOR Offset END Stop point for MIG EYE offset
J P[1] 100% FINE

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

P[7]
P[6] P[5]
P[10]

.
P[8]
. Y

Lap R X
First Search Scan P[9]

P[4]
TCP Location for search Lap L
Second Search Scan

P[11]
TCP Location for 1st search

Note P[1], P[2], and P[3] are not shown in Figure 23–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 23.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.

23–57
23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR MAROC73AR04071E REV A

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.

Example Program for SEARCH POINT[j] LBL[k] Search

Instruction Description
J P[1] 50% CNT100
J P[2] 50% FINE Move to first search point
SENSOR SEARCH START PR[1] Start search routine
SENSOR SEARCH POINT[3] LBL[1]
SENSOR SEARCH END
JMP LBL[2]
LBL[1] Failed 1st search jumps to here
J P[3] 40% FINE Move to alternate search position
SENSOR SEARCH START PR[1]
SENSOR SEARCH POINT[4] LBL[3] Alternate search
SENSOR SEARCH END (Any other program sequence
LBL[2] could be performed instead of
L PR[1] 100mm/sec FINE another search)
Arc Start[2]
TRACK SENSOR[3]
L P[8] 25mm/sec CNT100
L P[10] 25mm/sec CNT100
Arc End[2]
LBL[3] Failed 2nd search jumps to here
J P[1] 50% FINE

Note Searching occurs at the same location using either position type or offset type searches.

23–58
MAROC73AR04071E REV A 23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR

Performing a Search at a Taught Point

Use Procedure 23-12 to perform a search at a taught point.

Procedure 23-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. 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.
3. Press F1, POINT.

Note Teach this location with a FINE termination type.

4. Press NEXT, >.


a. Press F1, [INST].
b. Select SENSOR.
c. Select Search Start . Enter a position register value.
d. Press ENTER.
5. Press NEXT, >.
a. Press F1, [INST].
b. Select SENSOR.
c. Select Sea rch 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, >.

23–59
23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR MAROC73AR04071E REV A

a. Press F1, INST.


b. Select SENSOR.
c. Select Search End .

The example shown in Figure 23–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 23–25. Example of Sensor Search Point

Laser Scan

Y
X
TCP
Joint Position

Figure 23–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]).

23–60
MAROC73AR04071E REV A 23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR

Figure 23–26. Two Points to Determine Weld Path

Instruction Description

J P[1] 50% FINE Two points determine


SENSOR SEARCH START PR[1] the weld path
SENSOR SEARCH POINT[2] P[2]
SENSOR SEARCH END
J P[2] 50% FINE P[1]
SENSOR SEARCH START PR[2]
SENSOR SEARCH POINT[2]
SENSOR SEARCH END
L PR[1] 30% FINE PR[2]
ARC START[1]
L PR[2] 25mm/sec FINE PR[1]
ARC END

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 23–9 is possible.

Table 23–9. Search Retry Count

Retry Number Motion Status after Search

- Programmed position Fail

1 3mm in +X direction from trained point Fail

2 3mm in -X direction from trained point Fail

3 6mm in +X direction from trained point Fail

4 6mm in -X direction from trained point Successful or Fail

23–61
23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR MAROC73AR04071E REV A

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

23.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:

• TRACK
• TRACK END

23.6.6 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.

23.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.

23–62
MAROC73AR04071E REV A 23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR

Tracking Program Example

The following sensor tracking instructions are available:

• TRACK SENSOR[i] RPM[j]


• Track SENSOR[i]
• Track End

Tracking Program Example contains an example of using tracking instructions in a teach pendant
program.

Tracking Program Example

Instruction Description
J P[1] 50% FINE
SENSOR SEARCH START PR[4]
SENSOR SEARCH POINT[2]
SENSOR SEARCH END
L PR[4] 50% FINE

Arc Start [3]


TRACK SENSOR[2] Start tracking with SENSOR Schedule 2
L P[2] 35mm/sec CNT100
L P[3] 35mm/sec FINE
Arc End [3]

Track End 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.

23–63
23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR MAROC73AR04071E REV A

— 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.

• 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.

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 TRACK
Function with Preceding SEARCH Command for a program example.

TRACK Function with Preceding SEARCH Command

Instruction Description
J P[1] 30% FINE
SENSOR SEARCH START PR[1] Search routine
SENSOR SEARCH POINT [2]
SENSOR SEARCH End
L PR[1] 30 % FINE Move to found location
ARC START[1]
TRACK SENSOR [2] Track after move to PR[1]

23–64
MAROC73AR04071E REV A 23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR

L P[2] 25mm/sec CNT100

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 Track Function Moving to a Trained Position for a program example.

Track Function Moving to a Trained Position

Instruction Description
J P[1] 30% FINE Move to trained point, start welding, then
L P[2] 25mm/sec FINE track into the joint
ARC START[1]
Track SENSOR [2]

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 Tracking Example .

Tracking Example

Instruction Description
J P[1] 50% FINE
SENSOR SEARCH START PR[4]
SENSOR SEARCH POINT[2]
SENSOR SEARCH END
TRACK SENSOR[2] Start tracking before moving to Arc Start position
L PR[4] 50% FINE

Arc Start [3]


L P[2] 35mm/sec CNT100
L P[3] 35mm/sec FINE
Arc End [3]

Track End End tracking

23–65
23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR MAROC73AR04071E REV A

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 23–27 .

Figure 23–27. Schedule Change During Tracking Example

1: J P [1] 50% FINE


2: L P[2] 20mm/sec FINE
3: Arc Start [1]
4: Track SENSOR [2]
5: L P [3] 20mm/sec FINE
6: L P [4] 20mm/sec CNT 100
7: Track SENSOR [5]
8: L P [5] 20mm/sec CNT100
9: L P [6] 20mm/sec FINE
: Arc End [1]
10: Track End
11: L P [7] 50mm/sec FINE

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

• Differences in joint appearance


• Different joint geometries
• Change tracking bias

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

23–66
MAROC73AR04071E REV A 23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR

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.

23–67
23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR MAROC73AR04071E REV A

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 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 MIGE-055 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 23–28. Example of How the Sensor Resumes from a Tracking Error

Taught path
Offset

P[1] P[2] P[3]


Resume from here

P[1] n n
Move to P[3] + n
X

Robot path

Track fault location Part location

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.

23–68
MAROC73AR04071E REV A 23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR

HOLD

When TRACK SENSOR[99] is executed as a schedule change , tracking operates as follows:

• 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.

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 23–29 shows how the TRACK SENSOR[99] instruction is used to bypass an object.

23–69
23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR MAROC73AR04071E REV A

Figure 23–29. Use of Track Hold

Taught Path
notch

P[1] P[2] P[3] P[4]

cutout
x

Weld Path

Figure 23–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.

Using TRACK SENSOR[99] to Bypass an Object shows the program instructions used to execute the
weld path shown in Figure 23–29 . In this program, the notch around the cutout is not welded, and
welding is suspended across the cutout.

Using TRACK SENSOR[99] to Bypass an Object

Instruction Description
J P[1] 100% FINE
SENSOR SEARCH START PR[1]
SENSOR SEARCH POINT [1]
SENSOR SEARCH END
L PR[1] 100mm/sec FINE
Arc Start[1]
TRACK SENSOR[1]
L P[2] 25mm/sec CNT100
Arc End[1]
TRACK SENSOR[99]
L P[3] 30mm/sec CNT100
Arc Start [2]
TRACK SENSOR[2]
L P[4] 25mm/sec FINE
Arc End[2]
Track End

23–70
MAROC73AR04071E REV A 23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR

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 23–30 shows how the TRACK SENSOR[99] instruction is used to weld a notch.

Figure 23–30. Hold Offset/Bias During a Non-tracked Weld

Taught Path
P[4] notch P[5]
P[3] P[6]
P[1] P[2] P[7] P[8]

cutout

Weld Path

Hold Offset/Bias During a Non-tracked Weld shows the program instructions used to execute the
weld path shown in Figure 23–30 .

Hold Offset/Bias During a Non-tracked Weld

Instruction
J P[1] 100% FINE
SENSOR SEARCH START PR[1]
SENSOR SEARCH POINT [1]
SENSOR SEARCH END
L PR[1] 100mm/sec FINE
Arc Start[1]
TRACK SENSOR[1]
L P[2] 25mm/sec CNT100
TRACK SENSOR[99]
L P[3] 30mm/sec CNT100
L P[4] 25mm/sec CNT100
L P[5] 25mm/sec CNT100

23–71
23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR MAROC73AR04071E REV A

L P[6] 25mm/sec CNT100


L P[7] 25mm/sec CNT100
TRACK SENSOR[2]
L P[8] 25mm/sec FINE
Arc End[2]
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.

Using Tack Welding Avoid Function

The tack welding avoid function enables a tack-welded weld joint to be followed without disturbing
the track or stopping the program because of an alarm.

The tack welding avoid function performs these two operations:

1. If a position far from the actual weld line is detected, the function assumes that the position is
in a tack-welded section and does not use the corresponding data in calculations for tracking
control or adaptive welding control. The weld line is used to judge the tack-welded section and
calculated from the position of the tool tip.
2. Since available data is not detected in the tack-welded section, the tracking data stored earlier is
used to continue the offset in the same direction as before. If the detection of no position or
of a position far from the weld line continues within the tack-welded section, no alarm occurs
as far as the specified tack welding distance is not exceeded.

Adaptive welding control is performed in the tack-welded section as well. The gap data last detected
before the tack-welded section is used.

To use the tack welding avoid function, specify the following items on the schedule screen. For
the setting, refer to Section 23.4.2 .

1. Tack Avoidance

Enable the tack welding avoid function.


2. Tack Threshold

Specify the distance (mm) from the weld line of the detected position which is assumed to be
in a tack-welded section.
3. Tack Length

Specify the maximum length of the tack-welded section in the direction of the weld line. If the
detection of no position or of a position far from the weld line continues, exceeding this length,
an alarm is raised to stop the program as before.

23–72
MAROC73AR04071E REV A 23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR

Check whether the tack-welded section is correctly judged, using the tracking data history screen.

1. Select the SENSOR screen from the status menu.


2. The detection result display screen appears. Press the TRACK function key (F4) to display the
tracking data history screen.

STATUS Detect Log


1/100
X(mm) Y(mm) Z(mm) Diff
1 733.34 34.35 515.00 0.2
2 730.56 36.47 515.00 0.0
3 727.92 38.98 515.00 0.2
4 725.49 40.11 514.99 1.0 *
5 722.33 43.05 515.02 0.9 *
6 718.94 46.12 515.00 0.9 *
7 716.04 50.05 515.13 0.8 *
8 713.33 42.33 514.89 0.7 *
9 710.22 45.03 515.00 0.5

The tracking data history screen shows the sensor detection position in the world coordinate system
and the distance between the sensor detection position and the weld line. The last one hundred data
items are displayed. (The newest data item is given the smallest number.) If a position is judged to be
in the tack-welded section, an asterisk is added after the corresponding distance data.

Seeing the tracking data history, adjust the tack welding judgment distance in the schedule data.

The data is not updated during tracking. If tracking is performed with this screen displayed, display
another screen after the tracking is completed. Then, display this screen again.

Note This function can be used for straight weld lines. IF the weld line is curved or bent into an
angle, this function might not operate correctly.

A range of 40 to 60 mm from the tracking start position must be free from tack welding.

The maximum length of the tack-welded section that can be subjected to this function depends on the
welding speed.

23.7 ROOT PASS MEMORIZATION AND MULTI-PASS


The root pass memorization (RPM) feature described in Section 19.2 records the joint geometry data
such as the gap and cross-sectional area in addition to recording positional offset data provided by the

23–73
23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR MAROC73AR04071E REV A

sensor. The RPM feature is used in conjunction with the multi-pass (MP) feature. The MP feature
described in Section 19.3 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 Chapter
19 ROOT PASS MEMORIZATION AND MULTI-PASS .

23.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.

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 23–31 .

23–74
MAROC73AR04071E REV A 23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR

Figure 23–31. Adjusting a Weld Path by Modifying RPM Data

Actual weld seam

P[1] P[2]
Taught weld path
Pitch

RPM Buffer

X Y Z gap mismatch area S1 S2 Data[i]

X Y Z gap mismatch area S1 S2 Data[i]+1

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 23–10 . Use
Procedure 23-13 to set the pitch mode for RPM.

23–75
23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR MAROC73AR04071E REV A

Table 23–10. RPM System Variables

SYSTEM VARIABLE DESCRIPTION

$RPM_PG.$PITCH $PITCH allows you to specify the distance between


default : 10 mm 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 recording 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 $PITCH_MODE allows you to specify whether the


default: 0 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 23-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.

23–76
MAROC73AR04071E REV A 23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR

SETUP SERVO ROBOT


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

4. Determine PITCH_MODE, SELECT "mm" or "mesc".


5. Determine PITCH interval.
6. Enter a value.

23.7.2 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 in Section 19.3 is
enhanced to use the data in the program header. The improvements to the multi-pass 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

As described in Section 19.3 , the PR[] allows you to offset the entire weld and change tool direction.
The RPM[] allows you to specify the RPM buffer to use.

23–77
23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR MAROC73AR04071E REV A

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 23-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. Mult-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, as described in Section 19.3 ,
Multi-Pass.

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

23.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 progammer 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 23-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 23–32 .

23–78
MAROC73AR04071E REV A 23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR

Figure 23–32. Example Part

Weld 02

Weld 03

Weld 01

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 23–33 .

23–79
23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR MAROC73AR04071E REV A

Figure 23–33. Part Program

Weld Program Pass Number

Direction
PART.TP 0: Normal
1: CALL WELD01(1,0) 1: Reverse
2: CALL WELD02(1,0)
3: CALL WELD03(1,0)
4: CALL WELD01(2,1)
5: CALL WELD02(2,1)
6: CALL WELD03(2,1)
7: CALL WELD01(3,0)
8: CALL WELD02(3,0)
9: CALL WELD03(3,0)
.
.

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 WELD.TP . 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.

WELD.TP

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:
7: SENSOR SEARCH START PR[3]
8: SENSOR SEARCH POINT[3]

23–80
MAROC73AR04071E REV A 23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR

9: SENSOR SEARCH END


10: ! ROOT PASS
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: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 WELD.TP
is divided into three parts, one for the root pass, one for all other normal passes, and one for all
of the reverse passes.

23–81
23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR MAROC73AR04071E REV A

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 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 pases 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.

23.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 23.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.

23–82
MAROC73AR04071E REV A 23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR

Figure 23–34. Adaptive Welding I/O

INPUT ADAPTIVE ALGORITHM OUTPUT

$SRAD_IN.
$RDY_FLAG KAREL TASK
$ SEG_ID
$DISTANCE PROGRAM adtask $SRAD_OUT.
$GAP VAR $RDY_FLAG
$MISMATCH BEGIN
$SEG_ID
WHILE TRUE DO
$AREA $DISTANCE
WAIT FOR $SRAD_IN.$RDY_FLAG
$S1 prog_name =$AD_WELD.$ALGO_NAME $WD_SCH
$S2 CALL_PROG(prog_name, prog_index) $WV_SCH
$S3 $ SR_AD_IN.$RDY_FLAG = FALSE
$S4 ENDWHILE
$S5 END ad_task

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 23–11 lists and describes the Adaptive Welding System variables.

Table 23–11. Multi-Pass System Variables

SYSTEM VARIABLE DEFINITION

$MP_WELD.$NUM_PASSES Total number of passes for the weld


$MP_WELD.$LAST_PASS Last pass number welded
$MP_WELD.$CUR_PASS Current pass number being welded

$MP_PASS.$WELD_SCH Weld schedule for the current pass


$MP_PASS.$RUNIN_SCH Run-in schedule for the current pass
$MP_PASS.$BBACK_SCH Burnback schedule for the current pass
$MP_PASS.$CFILL_SCH Craterfill schedule for the current pass
$MP_PASS.$WV_SCH$ Weave schedule for the current pass
$MP_PASS.OFST Multipass offsets for the current pass

23–83
23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR MAROC73AR04071E REV A

Table 23–11. Multi-Pass System Variables (Cont’d)

$AD_WELD.$JNT_TYPE Joint type for the current weld


$AD_WELD.$ALGO_NAME. Name of the algorithm .PC file selected
$AD_WELD.$MIN_WD_SCH Lower limits set for the weld parameters
$AD_WELD.$MAX_WD_SCH Upper limits set for the weld parameters
$AD_WELD.$MIN_WV_SCH Lower limits set for the weave parameters
$AD_WELD.$MAX_WV_SCH Upper limits set for the weave parameters

$AD_JOINT.$GAP.$NOMINAL This variable stores the nominal ($NOMINAL), low ($MIN_VAL)


$AD_JOINT$GAP.$MIN_VAL and high ($MAX_VAL) values for gap, mismatch, area, s1, s2, s3,
$AD_JOINT$GAP.$MAX_VAL s4 and s5 set in the current weld TP program header.
$AD_JOINT$AREA.$NOMINAL
$AD_JOINT$AREA.$MIN_VAL
$AD_JOINT$AREA.$MAX_VAL
$AD_JOINT$MISMATCH.$NOMINAL
$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 The global constant values can be accessed from the following
$AD_CONST.$C2.$VALUE system variables.
$AD_CONST.$C3.$VALUE

$AD_PASS.$CP1 These system variables store the pass-specific constant values.


$AD_PASS.$CP2
$AD_PASS.$CP3

The system variables described in Table 23–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 Adaptive Welding Algorithm , 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

23–84
MAROC73AR04071E REV A 23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR

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 Adaptive Welding Algorithm 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.

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

23–85
23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR MAROC73AR04071E REV A

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
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

23–86
MAROC73AR04071E REV A 23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR

-- 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
-- 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

23–87
23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR MAROC73AR04071E REV A

23.9 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 Servo-Robot
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.

23.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.

23–88
MAROC73AR04071E REV A 23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR

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.

23.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 23–35 .

Figure 23–35. MIG_CRS

JOINT 30%
5 JMP/LBL
Searched Searched 6 CALL
point 1 point 2 Calculated
point 7 Arc
8 –––next page–––
Searched
point 3
KAREL list JOINT 30%
Searched 1 MIG_CIRCLE 5 MIG_VECTOR
point 4 2 MIG_CRS 6 MIG_VECTOR
3 MIG_CRS2 7
4 MIG_FRAME 8
Sample3

• Setting of position register

Ex. If R[N+2] = 1
— PR[1] : Calculated data
— PR[2] : Searched point 1
— PR[3] : Searched point 2

23–89
23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR MAROC73AR04071E REV A

— PR[4] : Searched point 3


— PR[5] : Searched point 4
• Set the registers and the position registers according to Section 23.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 Program with MIG_CRS .

Example Program with MIG_CRS

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] = 1
24: CALL MIG_CRS
25: IF R[14] = 0 JUMP LBL[99]
26: J PR[1] 100% Fine
27: LBL[99]

23–90
MAROC73AR04071E REV A 23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR

23.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 23–36 .

Figure 23–36. MIG_CRS2

JOINT 30%
5 JMP/LBL
6 CALL
Searched point 3 7 Arc
8 –––next page–––
Searched
point 2

Calculatedpoint KAREL list JOINT 30%


1 MIG_CIRCLE 5 MIG_VECTOR
Searched point 1
2 MIG_CRS 6 MIG_VECTOR
3 MIG_CRS2 7
4 MIG_FRAME 8
Sample3

• 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 23.9.1
• MIG_CRS2 also uses R[N=4] to determine the posture of the calculated point.

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 Program with MIG_CRS2 .

23–91
23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR MAROC73AR04071E REV A

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]

23.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 23–37 .

23–92
MAROC73AR04071E REV A 23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR

Figure 23–37. MIG_VECTOR

JOINT 30%
5 JMP/LBL
6 CALL
Calculatedpoint
7 Arc
Searched 8 –––next page–––
point 2

distance KAREL list JOINT 30%


Searched
point 1 Xmm 1 MIG_CIRCLE 5 MIG_VECTOR
2 MIG_CRS 6 MIG_VECTOR
3 MIG_CRS2 7
4 MIG_FRAME 8
Sample3

• 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 23.9.1

R[N+4] = 50 : The distance from the first searched point to the calculated point. (unit : mm)

Refer to Example Program with MIG_VECTOR .

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

23–93
23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR MAROC73AR04071E REV A

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]

23.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 23–38 .

Figure 23–38. MIG_CIRCLE

JOINT 30%
5 JMP/LBL
Searched Searched 6 CALL
point 1 point 2 7 Arc
8 –––next page–––

KAREL list JOINT 30%


1 MIG_CIRCLE 5 MIG_VECTOR
Searched point 3 2 MIG_CRS 6 MIG_VECTOR
3 MIG_CRS2 7
4 MIG_FRAME 8
Sample3

• 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

23–94
MAROC73AR04071E REV A 23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR

• Position register [5] : Searched point 4


• Set the registers and the position registers according to Section 23.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 Sample Program .

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]

23–95
23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR MAROC73AR04071E REV A

23.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 23–39 .

Figure 23–39. MIG_FRAME

JOINT 30% KAREL list JOINT 30%


5 JMP/LBL 1 MIG_CIRCLE 5 MIG_VECTOR
6 CALL 2 MIG_CRS 6 MIG_VECTOR
7 Arc 3 MIG_CRS2 7
8 –––next page––– 4 MIG_FRAME 8
Sample3

Setup for registers:

• Set registers R[N], R[N+1], R[N+2], and R[N+3] as described in Section 23.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 23.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
23.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 register 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

23–96
MAROC73AR04071E REV A 23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR

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 Program with MIG_FRAME , 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.

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

23–97
23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR MAROC73AR04071E REV A

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]

23.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 23–40 .

Figure 23–40. MIG_CROSS and MIG_VECTOR Application

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

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

23–98
MAROC73AR04071E REV A 23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR

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
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 23–41 .

23–99
23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR MAROC73AR04071E REV A

Figure 23–41. MIG_CROSS and MIG_FRAME Application

In the sample program shown in MIG_CROSS and MIG_FRAME Sample Program through Figure
23–43 , points A to E are specified on lines 31 to 35.

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

23–100
MAROC73AR04071E REV A 23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR

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]

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

23–101
23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR MAROC73AR04071E REV A

: 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]

Figure 23–42. WELD01.TP (Continued)

Weld Program Pass Number

Direction
PART.TP 0: Normal
1: CALL WELD01(1,0) 1: Reverse
2: CALL WELD02(1,0)
3: CALL WELD03(1,0)
4: CALL WELD01(2,1)
5: CALL WELD02(2,1)
6: CALL WELD03(2,1)
7: CALL WELD01(3,0)
8: CALL WELD02(3,0)
9: CALL WELD03(3,0)

23–102
MAROC73AR04071E REV A 23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR

Figure 23–43. Adaptive Welding Applications

Weld 03

Weld 01

Weld 02

23–103