Вы находитесь на странице: 1из 90

Chapter 1

UNIVERSAL SENSOR INTERFACE AND


ADAPTIVE WELDING

Table of Contents

Chapter 1 UNIVERSAL SENSOR INTERFACE AND ADAPTIVE WELDING............... 1-1


1.1 OVERVIEW......................................................................................................... 1-3
1.1.1 Limitations of the Universal Sensor Interface...................................................... 1-4
1.2 INSTALLING THE LASER TRACK SENSOR AND SOFTWARE................. 1-5
1.2.1 Additional Requirements...................................................................................... 1-5
1.2.2 E-Stop Connection ............................................................................................... 1-5
1.2.3 Laser Warning Light ............................................................................................ 1-6
1.2.4 Communication Connection................................................................................. 1-7
1.2.4.1 RS-232C Communication .................................................................................... 1-7
1.2.4.2 Ethernet Communication...................................................................................... 1-8
1.2.5 Validating Communications............................................................................... 1-10
1.3 SENSOR SETUP ............................................................................................... 1-11
1.3.1 Overview ............................................................................................................ 1-11
1.3.2 Disable Constant Path ........................................................................................ 1-11
1.3.3 Tool Frame Setup ............................................................................................... 1-11
1.3.4 Setting Up the Tool Frame ................................................................................. 1-12
1.3.5 Checking the Tool Frame Setting....................................................................... 1-12
1.3.6 Setting Up the Sensor Frame Using the Direct Entry Method ........................... 1-12
1.3.7 Setting Up the Sensor Frame Using the Ten Point Teaching Method ............... 1-13
1.3.8 Setting Up the Sensor System ............................................................................ 1-23
1.4 SENSOR DATA AND STATUS....................................................................... 1-25
1.4.1 Overview ............................................................................................................ 1-25
1.4.2 Sensor Schedule Setup ....................................................................................... 1-25
1.4.3 Motion Sensitivity .............................................................................................. 1-28
1.4.4 Sensor Schedules................................................................................................ 1-31
1.4.5 Detection Log..................................................................................................... 1-31
1.5 PROGRAMMING ............................................................................................. 1-34
1.5.1 Search ................................................................................................................. 1-34
1.5.2 Search Schedule ................................................................................................. 1-36
1.5.3 Offset Instructions .............................................................................................. 1-36
1.5.4 Search Programming .......................................................................................... 1-36
1.5.5 Track................................................................................................................... 1-47
1.5.6 Track Schedule ................................................................................................... 1-47
1-1
1. UNIVERSAL SENSOR INTERFACE
AND ADAPTIVE WELDING

1.5.7 Track Programming............................................................................................ 1-48


1.6 SETTING WELD PROCESS DATA FOR MULTI-PASS ADAPTIVE
WELDING 1-55
1.6.1 Setting Up Multi-Pass Data................................................................................ 1-55
1.6.2 Setting Up the Adapt Data ................................................................................. 1-60
1.7 ROOT PASS MEMORIZATION AND MULTI-PASS.................................... 1-65
1.7.1 Root Pass Memorization .................................................................................... 1-66
1.7.2 Using Multi-Pass with Adaptive Welding ......................................................... 1-68
1.7.3 Programming...................................................................................................... 1-69
1.8 ADAPTIVE WELDING .................................................................................... 1-72
1.9 SENSOR APPLICATION SOFTWARE........................................................... 1-78
1.9.1 Setup................................................................................................................... 1-78
1.9.2 MIG_CRS........................................................................................................... 1-78
1.9.3 MIG_CRS2......................................................................................................... 1-80
1.9.4 MIG_VECTOR .................................................................................................. 1-81
1.9.5 MIG_CIRCLE .................................................................................................... 1-82
1.9.6 MIG_FRAME .................................................................................................... 1-84
1.9.7 Sample Applications .......................................................................................... 1-85

1-2
1. UNIVERSAL SENSOR INTERFACE
AND ADAPTIVE WELDING

1.1 OVERVIEW

The Adaptive Welding feature allows you to adjust the weld process to compensate for the
variation in the weld joint geometry. The adaptive welding feature works in conjunction with
the seam tracking feature, which adjusts the path of the TCP to compensate for variations in
joint location. Adaptive Welding uses a laser track sensor to scan the weld joint as it is being
welded. The data provided by the laser track sensor can be used by the Adaptive Welding
feature to automatically adjust weld and weave parameters to optimize the quality of the
weld.

Note the performance of the Universal Sensor Interface option is highly dependent on the
application requirements, weld process operating conditions, and weld joint design. As such,
FANUC Robotics always verifies the functionality of this feature for each specific
application. Contact your local FANUC representative for an evaluation of your welding
application prior to ordering or implementing the Universal Sensor Interface.
When you use Adaptive Welding with the Multi-Pass feature, the joint location and geometry
data obtained during the Root Pass is memorized with the Root Pass Memorization feature
(RPM) and later re-used for tracking and adaptive welding on the subsequent passes with the
Multi-Pass (MP) feature.
An Adaptive Welding system consists of the following hardware and software components:
• Laser track sensor -Models that can support Universal Sensor Interface.
• A cable RS-232C or Ethernet (Depends on laser track sensor hardware) to connect
universal sensor interface to an RS-232C- port or to the Ethernet port on the controller.
• A PC to set up the sensor, and define the joint libraries using the WinUser software.

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


• Install and configure the laser track sensor using the PC software for the sensor.
• Install the Universal Sensor Interface software option on your controller
• Define a sensor frame using the ten points method.
• Write and execute a program that contains Multi-Pass and Adaptive Welding data and
track/offset instructions.

Figure 1-1 shows a basic adaptive welding system.

1-3
1. UNIVERSAL SENSOR INTERFACE
AND ADAPTIVE WELDING

Figure 1-1. Basic Adaptive Welding System

1.1.1 Limitations of the Universal Sensor Interface


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

1-4
1. UNIVERSAL SENSOR INTERFACE
AND ADAPTIVE WELDING

• The Tack Avoidance function is not supported.

1.2 INSTALLING THE LASER TRACK SENSOR AND


SOFTWARE

Before you can use the sensor with your controller, you need to install the laser track sensor.
After you have installed the laser track 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 PC
software.

Refer to the manual by each makers for information about how to set up the laser track
sensor.

Note Adaptive Welding supports only the joints supported by the laser track sensor. In order
to use Adaptive Welding effectively, you need to know the joint definitions and
measurements provided by the laser track sensor for each joint type. You need to configure
the laser track sensor's joint parameters on the laser track sensor controller with the PC
software.
Refer to the PC software documentation to set up the laser track sensor interface with your
PC.

1.2.1 Additional Requirements


In addition to the setup requirements described in the laser track sensor manual, you need to
install the following components on your controller:
• Laser track sensor E-Stop connection
• Laser Warning Light
• Communication Connection

1.2.2 E-Stop Connection


Connect the laser track sensor control to the robot controller using the wiring diagram shown
in Figure 1-2 .

1-5
1. UNIVERSAL SENSOR INTERFACE
AND ADAPTIVE WELDING

Figure 1-2. Sensor E-Stop Connection Wiring Diagram

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

1.2.3 Laser Warning Light


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

Figure 1-3. Attaching the Laser Warning Light

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

1-6
1. UNIVERSAL SENSOR INTERFACE
AND ADAPTIVE WELDING

1.2.4 Communication Connection

1.2.4.1 RS-232C Communication


Connect the communications cable to the laser track sensor controller box from the robot
controller using the wiring diagram shown in Figure 1-4.

Figure 1-4. Communication Connection Wiring Diagram

The controller uses the universal sensor interface function to communicate with the laser
track sensor controller. Select and configure one of the communications ports from the
following list:
• P2: DB25 connector labeled "RS-232-C" on the controller operator panel
• P3: DB25 connector labeled "PORT B" on the back of the controller operator panel

Use Procedure 1-1 and Procedure 1-2 below to configure and verify the controller to sensor
controller communication.

Procedure 1-1 Sensor Port Configuration


Conditions
• The controller is properly configured with the Universal Sensor Interface software
option installed.
• A full NULL modem cable is installed between the Sensor Controller CN6 port and
the controller communication port P2 or P3.
Steps
1. Press MENUS.
2. Select SETUP.
3. Press F1, [TYPE].
4. Select Port Init.
5. Move the cursor to P2 or P3
6. Press F3, DETAIL.
7. Set up the port as follows:

1-7
1. UNIVERSAL SENSOR INTERFACE
AND ADAPTIVE WELDING

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

1.2.4.2 Ethernet Communication


You must set up TCP/IP before you can use Internet Protocol Applications. Setup is required
in two areas:
• Hardware - includes port initialization and cable and connector requirements
• Software - includes host communication device definition
The R30iA controller supports two 10 Base-T or 100 Base-TX interfaces through the RJ45
Ethernet connectors. Connect your Sensor device to one of this port.
This port then should only be connected to the sensor!

Setup Software
1. Press MENUS.
2. Select SETUP.
3. Press F1, [TYPE].
4. Select Host Comm. You will see a screen similar to the following.
SETUP Protocols
1/8
Protocol Description
1 TCP/IP TCP/IP Detailed Setup
2 TELNET Telnet Protocol
3 SM Socket Messaging Device

5. Make sure TCP/IP is selected.


6. Press F3, DETAIL. You will see a screen similar to the following.
SETUP Host Comm
TCP/IP 4/40
Robot name: PDEROBO24
Port#1 IP addr: 172.22.194.24
Subnet Mask: 255.255.240.0
Board address: 00:e0:e4:06:fb:45
Router IP addr: 172.22.192.1

Host Name (LOCAL) Internet Address


1 ********** ******************
2 ********** ******************
Note There are two areas in which to enter the Host Name and Internet Address mappings on
the TCP/IP Setup screen:
1-8
1. UNIVERSAL SENSOR INTERFACE
AND ADAPTIVE WELDING

• Local Area - Data in this area is saved as part of SYSVARS.SV ($HOSTENT[]).


SYSVARS.SV should not be shared between robots.
• Shared Area - can include any Host Name/Internet Address mapping that is to be used as
part of the client tag configuration, but should not include robot name or router name entries.
Data in this area is saved as part of SYSHOST.SV ($HOST_SHARED[]).
In addition to Host name/Internet Address mapping, SYSHOST.SV ($HOST_SHARED[])
contains information about Telnet and DNS. A SYSHOST.SV can be shared between robots
and can be downloaded from one robot to create a complete DNS, Telnet, and Shared host
configuration on another Robot.

7. Move the cursor to each item and specify the appropriate information:
• Robot name — specify the unique name of the robot controller.
• Port # — indicates whether you are configuring interface #1 (top RJ45 labeled as
CD38A)or interface #2 (bottom RJ45 labeled as CD38B). Use the F3, Port key to change.
• Robot IP Address — specify IP address of the robot.
• Subnet Mask - This must be set. The default value is 255.255.255.0. Consult your
network administrator for guidance in setting this value.
*(This must be the same as for your Sensor)
• Board address — This is the Ethernet (MAC) address of the robot.
• Router IP address— specify IP address of the router. This can be left blank if no router is
used. The router address needs to be on the same subnet as interface #1 or interface #2.
This is where packets for any destination not on subnet for interface #1 or #2 will be sent.
Note: The board address is displayed and cannot be changed.
Note: Robot Name, Router IP address, and the Host Name/Internet Address table are shared
between Ethernet interface #1 and interface #2.
• Host Name/Internet Address - specify the unique host name and Internet address of each
host with which the controller will communicate as a client. (e.g. your Sensor Controller)

For example: HOST NAME must be SR:


Host Name (SHARED) Internet Address
1 SR 192.168.0.100
2 ********** *****************

1-9
1. UNIVERSAL SENSOR INTERFACE
AND ADAPTIVE WELDING

1.2.5 Validating Communications

Procedure 1-2 Validating Communications


Conditions
• The controller is properly configured with the laser track sensor software option
installed.
• A full NULL modem cable or Ethernet cable is installed between the laser track
sensor controller port and the controller communication port P2 or P3 or Ethernet.
• Proper safety equipment is in place and proper safety procedures have been
performed.
• The laser track sensor controller is powered and sensor ON/OFF functions (using
PC software of the sensor) are working properly.
• The laser is turned off.
Steps
1. Create the program shown in Example 1-1.

Example 1-1. Communication Validation Program


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

2. Execute the program in Example 1-1.


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

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

Cause code:

MIGE-115 Comm. Error (H:Time out)

1-10
1. UNIVERSAL SENSOR INTERFACE
AND ADAPTIVE WELDING

1.3 SENSOR SETUP

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

1.3.2 Disable Constant Path


Universal Sensor Interface option doesn’t support Constant Path features, so it must be
disabled.

Disabling Constant Path:


Steps
1. Press MENUS.
2. Select SYSTEM.
3. Press F1, [TYPE].
4. Select Variables.
5. Move the cursor to $CPCFG.
6. Press Enter.
7. Select $CP_ENB and set it to FALSE.
8. Cycle Power the controller.

1.3.3 Tool Frame Setup


The laser track sensor uses the tool center point, TCP, as a reference for calculating offset
data during tracking. You must set up the TCP by defining the tool frame prior to using the
sensor to scan welds.

Note: FANUC Robotics recommends that you set up your tool frame with the Six Point
method.

1-11
1. UNIVERSAL SENSOR INTERFACE
AND ADAPTIVE WELDING

1.3.4 Setting Up the Tool Frame


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

1.3.5 Checking the Tool Frame Setting


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

1.3.6 Setting Up the Sensor Frame Using the Direct Entry Method
If you have previously calculated a sensor frame, and you have the values of the frame's x, y,
z, w, p, and r coordinates, you can use the direct entry method to enter the coordinates of
your sensor frame. Use Procedure 1-3 to directly enter your tool frame coordinates.

Note: If you are setting up the laser track sensor for the first time, use the Ten Point Method
shown in Procedure 1-5.

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

ITEM DESCRIPTION
Frame This item displays the sensor and is non-editable.
X, Y, Z, W, P, R Displays the X, Y, Z, W, P, R values of the sensor frame.

Procedure 1-3 Sensor Frame Direct Entry Method


Conditions
• You have previously calculated a sensor frame with the Ten Point Method, and you
have the x, y, z, w, p, and r coordinates of that sensor frame.
Steps
1. Press MENUS.
2. Select SETUP.
3. Press F1, [TYPE].
4. Select Sensor Frames. You will see a screen similar to the following

1-12
1. UNIVERSAL SENSOR INTERFACE
AND ADAPTIVE WELDING

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

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

1-13
1. UNIVERSAL SENSOR INTERFACE
AND ADAPTIVE WELDING

Figure 1-5. LASON.TP


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

Figure 1-6. SEARCH.TP


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

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

Note: It is important that all the Search bias settings are set to ZERO in the Sensor Search
schedule for calibration.
Refer to Table 1-2 for Sensor Schedule Screen setup items.
Table 1-2. Sensor Schedule Screen Items

ITEM DESCRIPTION
Sensor Schedule: This item identifies the sensor schedule and provides an area in which to
[Comment] add a comment for the schedule.
SR Track Joint This item selects the joint to be detected for tracking from the joint
Num library of the laser track sensor.
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
Sensitivity 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.

1-14
1. UNIVERSAL SENSOR INTERFACE
AND ADAPTIVE WELDING

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 is not currently available.
Default: FALSE
Tack Threshold This is not currently available.
Default: 0 mm
Range: 0-100 mm
Tack Length This is not currently available.
Default: 0 mm
Range: 0-500 mm
Joint End Detect This is not currently available.
Start Distance This is not currently available.
(mm)
Detect DO Index This is not currently available.
Joint End OFS This is not currently available.
(mm)
SR Search Joint This item selects the joint number from the joint library of the laser track
Num sensor for searching purposes.
Search Type Defines the type of searching. There are two kinds of search:
• Position search calculates a "real position" in space to which the
robot can move.
• Offset search provides an incremental value that is used to offset
positions in a program.
Detection Count Specifies the number of joint detections to be executed per one Sensor
Search Point instruction. The recommended detection count is 3.
Retry Count Specifies the number of retry motions that will automatically be
Range: 0-5 performed. If the value is 0, the joint will only be searched in one
location.
Retry Direction Defines the direction that the robot will move if Retry Count is greater
than zero and a search fails. The robot moves the amount indicated by
Retry Distance and in the direction indicated by Retry Direction: x, -x, y,
-y, z, -z in the sensor frame.

1-15
1. UNIVERSAL SENSOR INTERFACE
AND ADAPTIVE WELDING

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.
Search Frame Defines the searching frame. There are three frames:
(Search) • UFRAME (User Frame)
• SFRAME (Sensor Frame)
• TFRAME (Tool Frame)
Dynamic Search This is not currently available.
(Search)
Search Dist This is not currently available.
(Search)
Search Spd This is not currently available.
(Search)

Procedure 1-4 Setting Sensor Schedule Data


Conditions
• You have set up the laser track sensor controller with the PC 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.
SENSOR 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.
SENSOR Sch.
1/26
1-16
1. UNIVERSAL SENSOR INTERFACE
AND ADAPTIVE WELDING

1 Sensor 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
11 Joint End Detect Disable
12 Start Distance (mm) 250.00
13 Detect Do Index 1
14 Joint End OFS (mm) 0
Search Setup
15 SR Search Joint Num 1
16 Search Type Position
17 Detection Count 3
18 Retry Count 0
19 Retry Direction X
20 Retry Distance (mm) 3.0
21 Y-Bias (mm) 0.00
22 Z-Bias (mm) 0.00
23 Search Frame UFRAME
24 Dynamic Search Disable
25 Search Dist (mm) 100.00
26 Search Spd (mm/sec) 250.00

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


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

1-17
1. UNIVERSAL SENSOR INTERFACE
AND ADAPTIVE WELDING

Figure 1-7. Teaching Reference Positions for Sensor Calibration

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

Table 1-3. SETUP Sensor Frame Ten Point Screen Items

ITEM DESCRIPTION
Sensor This item displays the X, Y, and Z components of the sensor frame.
TCP Reference Point This item allows you to teach the TCP reference points.
1 and 2
Reference Pair 1-4 This item allows you to record the reference positions for
calibration.

Procedure 1-5 Ten Point Calibration for Sensor Frame Setup


Conditions
• You have installed Universal Sensor Interface option on your controller.
• You have installed the laser track sensor and interface.
• Proper safety equipment is in place and proper safety procedures have been
performed.
• The laser track sensor controller is turned on, and you have verified the laser track
sensor ON/OFF functions with the software on your PC.
• A joint definition exists in the joint library of the laser track sensor for the calibration
joint.
• You have set up a sensor schedule that uses the joint number defined in the joint
library of the laser track sensor.
• 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 laser track sensor's laser is turned off.
Steps
1. Press MENUS.

1-18
1. UNIVERSAL SENSOR INTERFACE
AND ADAPTIVE WELDING

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 1-7 . These positions must also be
carefully marked on the joint since the remaining positions are taught with the laser scan line
crossing the joint exactly at these locations.
SETUP Sensor Frame
Sensor Frame Setup/Direct Entry 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.

1-19
1. UNIVERSAL SENSOR INTERFACE
AND ADAPTIVE WELDING

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

Figure 1-8. Teaching Pair 1

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

1-20
1. UNIVERSAL SENSOR INTERFACE
AND ADAPTIVE WELDING

Figure 1-9. Teaching Pair 2

19. Move the cursor to reference pair 1 point 1. Press F4, MOVE TO. This will move the robot
back to the position you recorded to Pair 1 point 1. Shift the robot position in X, Y and Z
directions, and add some rotation about the TCP.

Note: Make sure that the TCP is NOT on the calibration joint line. If Pair 1-Point 1 was
to the left, this time move it to the right. If it was high, make the new position low. The
laser scan line must cross exactly on the reference mark.
20. Move the cursor to reference pair 2, point 1. Press F5, RECORD to record Pair 2, Point 1.
21. Jog the robot in WORLD mode, using only the x, y & z jog keys, and move the laser scan
line to the 2nd reference mark.

Note: Make sure that the TCP is NOT on the calibration joint line. It should be offset by
different amounts or directions relative to Pair 2-Point 1. The scan line must cross exactly
on the reference mark.
22. Move the cursor to reference Pair 2, Point 2.
23. Press F5, RECORD to record Pair 2-Point 2.
24. See Figure 1-10 for an illustration of teaching reference points for Pair 3.

Figure 1-10. Teaching Pair 3

1-21
1. UNIVERSAL SENSOR INTERFACE
AND ADAPTIVE WELDING

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

Figure 1-11. Teaching Pair 4

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

successfully, the joint can be found.

Warning
In the next step, the robot will move automatically to the points you taught.
To stop the robot immediately any time during the Calibration Routine,
release the DEADMAN switch or press the EMERGENCY STOP button.

44. To run the calibration routine, jog the robot away from the calibration joint, near and
above Reference Point 1.
a. With the teach pendant enabled, make sure the robot is not in a PAUSE state or
faulted and set the desired override speed. (Usually 50% or less.)
b. Hold the SHIFT button down and press F3, EXEC. Keep the SHIFT key held down.
c. The robot will move between the pairs of points. At each position the camera will
search for the joint. When the routine is complete, a message will be shown on the
teach pendant and the program state will show "ABORTED". The new camera frame
values will be shown at the top of the screen. Write down these values for future use.

Verify the Sensor Frame


1. 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.
1.3.8 Setting Up the Sensor System
Before using the laser track sensor, you must set sensor system parameters correctly.
Table 1-4 lists the Sensor System Setup items you must define. Refer to Section 1.7 for
information about RPM. Refer to Section 1.5.7 for more information on automatic error
recovery.

Table 1-4. Sensor System Setup items

ITEM DESCRIPTION
Use Rotator The laser track 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.
1-23
1. UNIVERSAL SENSOR INTERFACE
AND ADAPTIVE WELDING

ITEM DESCRIPTION
Laser Status DI This item defines the Digital Input that will be turned on when the
laser track 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 This item specifies the unit of setting of RECORD PITCH FOR
RPM 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 This item enables sensor error recovery when a sensor error occurs.
Recovery

Procedure 1-6 Setting the Sensor System Setup


Steps
1. Press MENUS.
2. Select SETUP.
3. Press F1, [TYPE].
4. Select Sensor. You will see a screen similar to the following.
SETUP Sensor Sys
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.

1-24
1. UNIVERSAL SENSOR INTERFACE
AND ADAPTIVE WELDING

1.4 SENSOR DATA AND STATUS

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

1.4.2 Sensor Schedule Setup


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

Figure 1-12. Sensor Schedule LIST Screen


Sensor 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

Figure 1-13. Sensor Schedule DETAIL Screen


Sensor Sch.
1/26
1 Sensor 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
1-25
1. UNIVERSAL SENSOR INTERFACE
AND ADAPTIVE WELDING

11 Joint End Detect Disable


12 Start Distance (mm) 250.00
13 Detect Do Index 1
14 Joint End OFS (mm) 0
Search Setup
15 SR Search Joint Num 1
16 Search Type Position
17 Detection Count 3
18 Retry Count 0
19 Retry Direction X
20 Retry Distance (mm) 3.0
21 Y-Bias (mm) 0.00
22 Z-Bias (mm) 0.00
23 Search Frame UFRAME
24 Dynamic Search Disable
25 Search Dist (mm) 100.00
26 Search Spd (mm/sec) 250.00

Table 1-5. Sensor Schedule Items

ITEM DESCRIPTION
Sensor Schedule: This item identifies the sensor schedule and provides an area in
[Comment] which to add a comment for the schedule.
SR Track Joint Num This item selects the joint to be detected for tracking from the joint
library of the laser track sensor.
Tracking Type This item specifies the type of tracking that will be performed:
STANDARD tracking or STATIONARY tracking. By default,
tracking type is set to STANDARD. Stationary tracking refers to
tracking an object that is being rotated by an extended axis.
Currently, only STANDARD tracking is supported.
Motion Sensitivity This item specifies how reactive the robot motion system will be to
sensor data. A low value of motion sensitivity provides a slow
motion response, large filtering buffer, and so forth.
High values for motion sensitivity might be potentially unstable, but
are very reactive to sensor data.
A value of 1 is least sensitive, 5 is most sensitive. The default value
is 3.
Motion sensitivity determines the motion buffer distance and the
number of consecutive failed scans allowed before the robot stops
tracking.

1-26
1. UNIVERSAL SENSOR INTERFACE
AND ADAPTIVE WELDING

ITEM DESCRIPTION
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 is not currently available.
Default: FALSE
Tack Threshold This is not currently available.

Tack Length This is not currently available.


Default: 0 mm
Range: 0-500 mm
Joint End Detect This is not currently available.
Start Distance This is not currently available.
(mm)
Detect DO Index This is not currently available.
Joint End OFS This is not currently available.
(mm)
SR Search Joint Num This item selects the joint number from the joint library of the laser
track sensor for searching purposes.
Search Type Defines the type of searching. There are two kinds of search:
• Position search calculates a "real position" in space to which the
robot can move.
• Offset search provides an incremental value that is used to offset
positions in a program. Refer to Section 1.5.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
Range: 0-5 performed. If the value is 0 , the joint will only be searched in one
location.
Retry Direction Defines the direction that the robot will move if Retry Count is
greater than zero and a search fails. The robot moves the amount
indicated by Retry Distance and in the direction indicated by Retry
Direction : x, -x, y, -y, z, -z in the sensor frame.
Retry Distance Specifies the distance the sensor moves before the search is tried
again. Distance must be greater than 0 to have motion occur. It is
recommended that you use 3 mm for the Retry Distance .

1-27
1. UNIVERSAL SENSOR INTERFACE
AND ADAPTIVE WELDING

ITEM DESCRIPTION
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.
Search Frame Defines the searching frame. There are three frames:
(Search) • UFRAME (User Frame)
• SFRAME (Sensor Frame)
• TFRAME (Tool Frame)
Dynamic Search This is not currently available.
(Search)
Search Dist (Search) This is not currently available.
Search Spd (Search) This is not currently available.

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

1-28
1. UNIVERSAL SENSOR INTERFACE
AND ADAPTIVE WELDING

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

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

Table 1-6. Ratio Settings

Motion Sensitivity 1 2 3 4 5
Front : Rear 7:18 7:13 7:8 5:5 4:4
Motion buffer distance 25 20 15 10 8
(mm)
Number of consecutive 11 9 6 4 3
failed scans

1-29
1. UNIVERSAL SENSOR INTERFACE
AND ADAPTIVE WELDING

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

Procedure 1-7 Setting Up a Sensor Schedule


Steps
1. Press MENUS.
2. Select DATA.
3. Press F1, [TYPE].
4. 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.
Sensor 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

6. To display the items in the DETAIL screen , press F3, DETAIL. You will see a screen
similar to the following.
Sensor Sch.
1/18
1 Sensor 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
1-30
1. UNIVERSAL SENSOR INTERFACE
AND ADAPTIVE WELDING

10 Tack Length (mm) 40.00


11 Joint End Detect Disable
12 Start Distance (mm) 100.00
13 Detect Do Index 0
14 Joint End OFS (mm) 0.00
Search Setup
15 SR Search Joint Num 1
16 Search Type Position
17 Detection Count 3
18 Retry Count 0
19 Retry Direction X
20 Retry Distance (mm) 3.0
21 Y-Bias (mm) 0.00
22 Z-Bias (mm) 0.00
23 Search Frame UFRAME
24 Dynamic Search Disable
25 Search Dist (mm) 100.00
26 Search Spd (mm/sec) 100.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.

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

Procedure 1-8 Changing the Number of Sensor Schedules


Steps
1. Press MENUS.
2. Select SYSTEM.
3. Press F1, [TYPE].
4. Select Variables.
5. Move the cursor to $AVST_JNTNUM.
6. Change the value to the number of sensor schedules you want.
7. Turn off the controller.
8. Perform a Controlled start.

1.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.
1-31
1. UNIVERSAL SENSOR INTERFACE
AND ADAPTIVE WELDING

Detection Data
If a tracking error has occurred due to detection problems, it might be necessary to determine
the point in the detection log data that corresponds to the current tracking position. For
detection data at the current TCP location, you must look at approximately 50 mm of scans
from number 1 in the detection log. The exact value is given by the sensor lead distance,
which is the distance between the TCP and the laser scan.

Figure 1-15. Detection Data Equation

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


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

Figure 1-16. Sampling Rate Equation

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

Figure 1-17. Example Detection Data Calculation

Review the detection data and all preceding data to diagnose the problem. Also, observe the
joint and TCP to determine if the appearance of the joint is the cause of the problem.
For the example calculation, the fault occurs at or near data item 25 in the detection log.
The detection log contains 200 detections from the sensor. Table 1-7 lists and describes each
item on the detection log. Use Procedure 1-9 to display the detection log.

Table 1-7. Detection Log Data

DETECTION LOG DESCRIPTION


DATA
Item Number This item indicates the sequence of data input to the screen. The top,
number 1, is the newest data. The bottom, number 200, is the oldest
data. New data that comes into the detection log is displayed at the
top and old data at the bottom is discarded.
Code xxx This item indicates information about an individual data scan. The

1-32
1. UNIVERSAL SENSOR INTERFACE
AND ADAPTIVE WELDING

DETECTION LOG DESCRIPTION


DATA
first digit indicates a detection code. For example, 0 means the
sensor locates the joint properly, 3 means incorrect sensor data, and
4 means insufficient good sensor data. The second character
indicates the data type, as follows:
• S = Search
• T = Track
• C = Cleared data
The last digit 0 is unused. For example, 0T indicates a
successful track data.
X / Y / Z / Gap The data shown under the X, Y, Z, and Gap columns indicate the
calculated values for the joint that was scanned.
• X, Y, and Z indicate the calculated positional difference from
the sensor frame origin to the actual joint location.
• The gap value is measured by the sensor in mm.

Procedure 1-9 Displaying the Detection Log


Steps
1. Press MENUS, and then select Status.
2. Press F1, [TYPE], and then select Sensor. You will see a screen similar to the following.
STATUS 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.

1-33
1. UNIVERSAL SENSOR INTERFACE
AND ADAPTIVE WELDING

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

1.5 PROGRAMMING

Several instructions are available that allow sensor functions to be executed from within a
teach pendant program. These instructions are used with the standard Arc Tool instructions,
such as Arc Start, to create programs that search, track and weld.
This section includes information on the following topics.
• Sensor searching and tracking instructions
• Search and offset programming
• Tracking programming
1.5.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] or SENSOR SEARCH POINT [i] LBL [i]
• SENSOR SEARCH END

Warning
During the execution of the search routine, the laser will be operating at
high power levels. DO NOT look directly into the beam path. Direct
exposure can cause damage to your eyes.

1-34
1. UNIVERSAL SENSOR INTERFACE
AND ADAPTIVE WELDING

A search routine is also used in combination with one or more position instructions to
establish the physical location where the search will be executed.

SENSOR SEARCH START PR[i]


SENSOR SEARCH START is used to identify the location in a program where a search
routine will be started. The Position Register (PR) stores the position or offset data from the
Search Routine.
i = Position register number (Normal range = 1 to 100)

SENSOR SEARCH POINT [i]


SENSOR SEARCH POINT identifies the location in a search routine where the actual
scanning (searching) of the joint occurs. The parameter values used for searching come from
the sensor schedule.
i = Sensor schedule number (Normal range = 1 to 10)

Note If the SENSOR SEARCH fails when this information is used, the program will be
paused on the line that contains the search point instruction.

SENSOR SEARCH POINT[i] LBL[j]


If the LBL[j] modifier is added at the end of the SENSOR SEARCH POINT[] instruction,
program execution jumps to LBL[j] when joint detection fails.
If you want to add the LBL[j] modifier, insert a SENSOR SEARCH POINT[] instruction,
move the cursor to the right of the instruction on the same line, press F4, [CHOICE], and
select LBL[].
When the SENSOR SEARCH POINT[ ] LBL[ ] instruction is executed and the joint
detection fails, the following events will occur
• If the search retry function is enabled, the robot will continue searching based on the
sensor schedule data.
• After all search retries have failed, the program will branch to the LBL[j] instruction and
continue execution.
• When the branch to label is executed, the current search routine is disabled as if a
SENSOR SEARCH END has been executed, but no data is calculated.
• If a search fail digital output has been assigned, the output is turned ON. Pressing the
RESET key or issuing a SEARCH START command will cause the search fail digital
output to turn OFF.
• Program execution continues at the location where the corresponding LBL[j] exists in the
program.

SENSOR SEARCH END


SENSOR SEARCH END is used to identify that the Search Routine is complete. At this
time, the sensor will calculate the positional data and put this data into the position register
identified in the SENSOR SEARCH START instruction.

Including Search Instructions in a Program


Search instructions are in the SENSOR instruction set within the INST submenu. The sensor
instructions are as follows:
1-35
1. UNIVERSAL SENSOR INTERFACE
AND ADAPTIVE WELDING

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

1.5.2 Search Schedule


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

1.5.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 points that follow to align them with the found location of the joint.
Refer to Section 1.5.4 for more information on offset type search routine. The position
register (PR) is where the offset data is stored.
i = Position Register number
All positions that follow this instruction will be offset by the value in the position register.
This function can only be used with an offset type Search routine.

SENSOR OFFSET END


SENSOR OFFSET END indicates the location in a program where the offset is no longer
required. This offset is added to the taught weld points to align them with the found location
of the joint. OFFSET END does not change the value in the position register. Therefore, the
offset could be used again.

Including Offset Instructions in a Program


Offset instructions are in the SENSOR instruction set within the INST submenu.

1.5.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.
1-36
1. UNIVERSAL SENSOR INTERFACE
AND ADAPTIVE WELDING

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

1-37
1. UNIVERSAL SENSOR INTERFACE
AND ADAPTIVE WELDING

Table 1-8. Offset Type Search

Number of Searches in Search Calculated Output


Routine
1 Incremental offset in 2 dimensions, y and z. It is assumed
that the part moves parallel to the original location.
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 1-2 contains an example of an offset type search.

Example 1-2. Example Offset Type Search


Instruction
Instruction Description
1: J P[1] 50% CNT100
2: L P[2] 80mm/sec FINE Move to first search position
3: SENSOR SEARCH START PR[1]
4: SENSOR SEARCH POINT[3]
5: J P[3] 40% CNT100
6: J P[4] 40% CNT100
7: J P[5] 40% FINE Move to second search position
8: SENSOR SEARCH POINT[4]
9: SENSOR SEARCH END
10: SENSOR OFFSET START PR[1]
11: L P[6] 100mm/sec FINE
12: Arc Start[2]
13: L P[8] 25mm/sec CNT100 Weld first path
14: Arc End[2]
15: J P[9] 40% FINE Reposition for second path
16: Arc Start[3]
17: L P[10] 25mm/sec CNT100 Weld second path
18: Arc End[3]
19: SENSOR OFFSET END
20: 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.
When $MIG_CALFLG=1 , the z offset is "z" from the second search, and all points on the
1-38
1. UNIVERSAL SENSOR INTERFACE
AND ADAPTIVE WELDING

weld path will have the same incremental z added. See Figure 1-19 . This assumes the part
plane will always be parallel to the original.

Figure 1-19. $MIG_CALFLG = 1

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

Figure 1-20. $MIG_CALFLG = 2

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

Figure 1-21. $MIG_CALFLG = 3

1-39
1. UNIVERSAL SENSOR INTERFACE
AND ADAPTIVE WELDING

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


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

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

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

1-40
1. UNIVERSAL SENSOR INTERFACE
AND ADAPTIVE WELDING

Figure 1-22. One Position Search - Position Type for Weld Start Position

One Search Point - Offset Type Output


A search routine with one search point (offset type) is used to find a part that has shifted
parallel to the original location in two dimensions (y and z).
The program examples in Example 1-3 and Example 1-4 are very similar. However, by
changing the search type in the sensor schedule to OFFSET, the system automatically
calculates an offset instead of a position. The calculated offset can then be applied to many
points in the program by using OFFSET START and OFFSET END instructions.

Note: The robot program ( Example 1-3 , for example) should be altered to apply an offset
PR[4] rather than moving to PR[4]. Example 1-4 shows the programming for a five-sided
part identified in Figure 1-23 In this example, P[6] - P[7], P[7] - P[8], and P[9] - P[10] can
use the offset information. It is assumed that the part moves only in the y and z directions
and does not rotate.

Note: P[5] -P[6] and P[8] -P[9] still get offset in z.

Example 1-4. Example Program for Offset Type Search with Y Z Output
Instruction Description
1: J P[1] 100% CNT100
2: J P[2] 100% FINE
3: SENSOR
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
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
1-41
1. UNIVERSAL SENSOR INTERFACE
AND ADAPTIVE WELDING

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 Sensor offset
18: J P[1] 100% FINE

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

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

Two Search Points in One Search Routine


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

Example 1-5. Example Program for Offset Type Search with X, Y, Z, Output
Instruction Description
1: J P[1] 100% CNT100
2: J P[2] 100% FINE
3: SENSOR SEARCH START PR[3] Start search routine
4: J P[3] 40% FINE Move to first search point P[3]
5: SENSOR SEARCH POINT[1] Search joint, schedule [1]
6: J P[11] 40% FINE Move to second search point P[11]
7: SENSOR SEARCH POINT[2] Search joint, schedule[2]
8: SENSOR SEARCH END Stop search routine, calculate offset
9: J P[4] 100% FINE
10: SENSOR OFFSET START PR[3] Start point for applying offset

1-42
1. UNIVERSAL SENSOR INTERFACE
AND ADAPTIVE WELDING

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


12: L P[6] 20mm/sec CNT100
13: L P[7] 20mm/sec CNT100
14: L P[8] 20mm/sec CNT100
15: L P[9] 20mm/sec CNT100
16: L P[10] 20mm/sec FINE ARC END [1]
17: SENSOR OFFSET END Stop point for sensor offset
18: J P[1] 100% FINE

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

Note: P[1], P[2], and P[3] are not shown in Figure 1-24 for clarity.

Note: For this search to calculate the xyz offset correctly, segment P[8] - P[9] and segment
P[9] - P[10] must be coplaner and perpendicular.

Note: The first and second searches can be programmed at any position. However, z will be
determined solely by the second search when $MIG_CALFLG=1 and 2. Refer to the
description of the $MIG_CALFLG system variable in Section 1.6.4 .

SEARCH POINT[j] LBL[k] Usage


You can include the LBL[k] option for sensor searches that require specific actions if the
search fails. The instruction execution is identical with or without the LBL[k] option as long
as the search is successful.
If a detection error occurs during the search (the search is not successful), the following
events occur:
• If the Retry Count > 0, the robot will move and a new search will be attempted.
• After all search retries have failed or if a single search fails when Retry Count = 0, the
program will branch to LBL[k] and continue execution.
• The program will not stop with a PAUSE error.

1-43
1. UNIVERSAL SENSOR INTERFACE
AND ADAPTIVE WELDING

• 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 1-6. Example Program for SEARCH POINT[j] LBL[k] Search


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

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

Performing a Search at a Taught Point


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

Procedure 1-12 Performing a Search at a Taught Point


Steps
1. Jog the robot so that the TCP (weld wire) and the laser scan are both on the joint to be
searched. This will ensure proper alignment to the joint.

Note: For a position type search, the tool (torch) angles used for searching must be the
same as the angle desired for welding. Orientation of the last search position is used in

1-44
1. UNIVERSAL SENSOR INTERFACE
AND ADAPTIVE WELDING

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 Search Point.
Type a sensor schedule number and press ENTER.

Note: To provide an alternate action for a search error, use the SENSOR SEARCH
POINT[i] LBL[j] instruction.

Note: Press the choice button if you want to use the LBL instruction.

Note: To add an additional search (such as, two position search routine), repeat Steps
1 through Step 5 . Additional points can be added between searches to avoid objects.
6. Press NEXT, >.
a. Press F1, INST.
b. Select SENSOR.
c. Select Search End .
The example shown in Figure 1-25 depicts the placement of the TCP and the sensor
during teaching. The joint position will be determined by transforming the offset
values provided by the sensor in the sensor frame into WORLD frame values.

1-45
1. UNIVERSAL SENSOR INTERFACE
AND ADAPTIVE WELDING

Figure 1-25. Example of Sensor Search Point

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

Figure 1-26. Two Points to Determine Weld Path

Search Retry
Search Retry is an automatic recovery feature. In the event that a search fails, the robot will
reposition the sensor to perform another search. The number of retries is controlled by the
value of RETRY COUNT in the sensor schedule. A value of zero indicates that search retry
is disabled. When a search fails, the robot will move along a specified direction by a
specified distance. These values are set in the sensor schedule as RETRY DIRECTION and
RETRY DISTANCE. The robot motion is relative to the sensor frame.
If the number of retries is specified greater than 1 with a maximum of 5, motion will
alternate direction for successive retries.

1-46
1. UNIVERSAL SENSOR INTERFACE
AND ADAPTIVE WELDING

This process continues altering motion directions and adding to the retry distance until the
number of retries is exceeded, or searching is successful.
For example, if RETRY COUNT = 4, RETRY DISTANCE = 3, and RETRY DIRECTION =
x, the sequence shown in Table 1-9 is possible.

Table 1-9. Search Retry Count

Retry Number Motion Status after Search


- Programmed position Fail
1 3mm in +X direction from trained Fail
point
2 3mm in -X direction from trained Fail
point
3 6mm in +X direction from trained Fail
point
4 6mm in -X direction from trained Successful or Fail
point

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

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

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

1-47
1. UNIVERSAL SENSOR INTERFACE
AND ADAPTIVE WELDING

1.5.7 Track Programming


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

Tracking Program Example


The following sensor tracking instructions are available:
• TRACK SENSOR[i] RPM[j]
• Track SENSOR[i]
• Track End

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

Example 1-7. Tracking Program Example


Instruction Description
1: J P[1] 50% FINE
2: SENSOR SEARCH START
START PR[4]
3: SENSOR SEARCH POINT[2]
4: SENSOR SEARCH END
5: L PR[4] 50% FINE
6: Arc Start [3]
7: TRACK SENSOR[2] Start tracking with SENSOR Schedule 2
8: L P[2] 35mm/sec CNT100
9: L P[3] 35mm/sec FINE
10: Arc End [3]
11: 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.
• Enough positions must be taught to keep the joint within the scanning range of the
laser track sensor as the joint is tracked.
1-48
1. UNIVERSAL SENSOR INTERFACE
AND ADAPTIVE WELDING

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 Example 1-8 for a program example.

Example 1-8. TRACK Function with Preceding SEARCH Command


Instruction Description
1: J P[1] 30% FINE
2: SENSOR SEARCH START PR[1] Search routine
3: SENSOR SEARCH POINT [2]
4: SENSOR SEARCH End
5: L PR[1] 30 % FINE Move to found location
6: Arc Start[1]
7: TRACK SENSOR [2] Track after move to PR[1]
8: 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 Example 1-9 for a program example.

Example 1-9. Track Function Moving to a Trained Position


Instruction Description
1: J P[1] 30% FINE Move to trained point, start welding, then
2: L P[2] 25mm/sec FINE track into the joint
3: Arc Start[1]

1-49
1. UNIVERSAL SENSOR INTERFACE
AND ADAPTIVE WELDING

4: 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
Example 1-10.

Example 1-10. Tracking Example


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

Schedule Change During Tracking


The tracking schedule number can be modified during tracking by using the TRACK
SENSOR instruction with a different schedule number. See Figure 1-28.

Figure 1-28. Schedule Change During Tracking Example

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

1-50
1. UNIVERSAL SENSOR INTERFACE
AND ADAPTIVE WELDING

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 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 laser track sensor 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.
Laser track 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

1-51
1. UNIVERSAL SENSOR INTERFACE
AND ADAPTIVE WELDING

resume" will occur. The robot will be paused again.


4. When the program is restarted after resetting the error, tracking and welding will resume.

To enable the Tracking Error Recovery, enable the Original Path Resume function in weld
system setup menu, and enable TRACKING ERROR RECOVERY in Sensor system set up
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 1-29. Example of How the Sensor Resumes from a Tracking Error

Track Hold/Resume Function


The TRACK SENSOR[99] instruction can be used during a normal tracked path to suspend
the tracking function temporarily (HOLD). This retains the current offset that was in effect
prior to the command execution.
HOLD
When TRACK SENSOR[99] is executed as a schedule change , tracking operates as
follows:
• 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.
1-52
1. UNIVERSAL SENSOR INTERFACE
AND ADAPTIVE WELDING

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

Figure 1-30. Use of Track Hold

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

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


Instruction Description
1: J P[1] 100% FINE
2: SENSOR SEARCH START PR[1]

1-53
1. UNIVERSAL SENSOR INTERFACE
AND ADAPTIVE WELDING

3: SENSOR SEARCH POINT [1]


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

TRACK SENSOR[99] uses bias and offset and the adaptive weld schedule from the TRACK
SENSOR[1] instruction until the TRACK SENSOR[2] instruction is executed. When P[3] is
reached, the tracking resumes with the full information of the schedule 2 data.
The bias and offset values used throughout the TRACK SENSOR[99] instruction are
maintained after P[3] until tracking is re-established. The offset and bias will begin at lead
distance of laser line to TCP after the scheduled change point, then the new bias and offset
obtained from the TRACK SENSOR[2] instruction are used.

Using TRACK SENSOR[99] to Weld a Notch


Figure 1-31 shows how the TRACK SENSOR[99] instruction is used to weld a notch.

Figure 1-31. Hold Offset/Bias During a Non-tracked Weld

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

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


Instruction
1: J P[1] 100% FINE
2: SENSOR SEARCH START PR[1]

1-54
1. UNIVERSAL SENSOR INTERFACE
AND ADAPTIVE WELDING

3: SENSOR SEARCH POINT [1]


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

Note: P[3] through P[7] will have a sensor lateral and Z offset applied uniformly. P[3]...P[4]
might be a circular motion type.

1.6 SETTING WELD PROCESS DATA FOR MULTI-PASS


ADAPTIVE WELDING

When the Universal Sensor Interface option is installed, all data required for Multi-Pass
Adaptive Welding is contained within the teach pendant program. This data includes the
nominal weld, weave, run-in, burnback, and crater fill schedules, the offsets for each pass,
and the joint geometry parameters and process limits required for adaptive welding. This data
and the programming method described in Section 1.6.1 and Section 1.6.2 enable you to
perform Multi-Pass Adaptive Welding. This section describes how to create and modify the
data in a teach pendant program.

1.6.1 Setting Up Multi-Pass Data


The nominal values for weld, weave, run-in, burnback, and crater fill schedules for each pass
must be set. This data will be used when the weld joint is nominal and there is no variation in
the joint geometry along the weld path. Use Procedure 1-10 to set up multi-pass data.

Note: Be aware of the following with regard to Procedure 1-10 .

Process parameter names for welding equipment vary based on the welding power supply
and the weld process you have selected. These are column headers in many of the tables.

Adaptive parameters dealing with robot speed will have the units in the ArcTool Setup
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 ArcTool Setup
screen in the Setup menu set to “Wire feed speed units.”

1-55
1. UNIVERSAL SENSOR INTERFACE
AND ADAPTIVE WELDING

Procedure 1-10 Setting Up Multi-Pass Data


Steps
1. Create a new program or move the cursor to the program for which you want to set process
data. If you are editing an existing program, you will see a screen similar to the following. If
you are creating a new program, you will see a screen similar to the one shown in Step 2 .
Select
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.

1-56
1. UNIVERSAL SENSOR INTERFACE
AND ADAPTIVE WELDING

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

3. Enter the number of passes in the weld.

Note: You must use one teach pendant program per weld. All of the passes of the weld
will use the same program, as described in Section 1.8.
When a program is first created, the number of passes is 0 by default. When you enter the
number of passes, the default schedules and offsets for each pass are created.
If you increase the number of passes in an existing program (weld), the data for additional
passes is created. Similarly, if you decrease the number of passes, the data for those passes is
deleted. Note that the size of the teach pendant program increases by 224 bytes for each
additional pass.
4. To view and edit the data, move the cursor to the item and press ENTER.
5. To view the weld schedules,
a. Move the cursor to Weld schedules and press ENTER. You will see a screen similar
to the following.
In the screens shown below, one line of data corresponds to each pass. Note that the
actual parameters (such as trim or volts) depend on the equipment that is currently
selected.
Program detail
Weld schedules 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.
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.

1-57
1. UNIVERSAL SENSOR INTERFACE
AND ADAPTIVE WELDING

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 1.6.2.
Refer to Multi Pass documentation for the definition of the offsets.
Usually pass 1 is the tracking pass. Therefore, the offsets specified for pass 1 are never used.
However, if offsets are needed for the first pass, specify the y and z-bias values in the track
schedule.
8. To view the run-in schedules, move the cursor to Run-in schedules and press ENTER. Each
pass can have different run-in schedules as specified in the following screen. Refer to Arc
Tool manual for more information on run-in.
Program detail
Run-in schedules 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

1-58
1. UNIVERSAL SENSOR INTERFACE
AND ADAPTIVE WELDING

9. To view the burnback schedules,


a. Move the cursor to Burnback schedules and press ENTER. Each pass can have
different burnback schedules, as specified in the following screen. Refer to Arc Tool
manual for more information on burnback.
Program detail
Burnback schedules 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

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.
1-59
1. UNIVERSAL SENSOR INTERFACE
AND ADAPTIVE WELDING

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

1.6.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 set up the ranges for weld parameters such as voltage and wire feed speed,
and weave parameters such as amplitude and frequency. Refer to Procedure 1-11 .
Adaptive welding is performed using an algorithm specified in a KAREL program. This
mechanism allows you to specify different algorithms for different joints.
You must have the KAREL program (.PC file) available to perform the adaptive algorithm.
This KAREL program takes the joint geometry data provided by the sensor as inputs and
calculates the new weld and weave parameters as the robot moves along the length of the
weld. This KAREL program must be created and loaded on the controller as explained in
Section 1.8
In addition to selecting the direct variables such as the gap, mismatch or area of the joint, you
can select a variable derived from the break points of the joint you want to weld. For the
definition of the joint geometry and break points for the joints supported by the laser track
sensor, refer to each laser track sensor manual.

Example
The example in Figure 1-32 shows how to select a derived variable from the joint definition.
The V-groove joint has six break points (B0 to B5) as defined in Figure 1-32.

1-60
1. UNIVERSAL SENSOR INTERFACE
AND ADAPTIVE WELDING

Figure 1-32. V Groove Joint with Six Breakpoints

The sensor provides the break point data in addition to gap, area, and mismatch. In most
cases, the direct variables -- gap, area, and mismatch -- are sufficient to perform adaptive
welding. However, in addition to the direct variables, you can define and use derived
variables, S1 to S5, for adaptive welding. The three possible alternatives for S1 to S5 are as
follows:
• Distance between any two break points (B1-B2*, for example)
• Y-distance between any two break points (B1-B2y, for example)
• Z-distance between any two break points (B1-B2z, for example)

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

Note Please be aware of the following with regard to Procedure 1-11 .

Process parameter names for welding equipment vary based on the welding power supply
and the weld process you have selected. These are column headers in many of the tables.

Adaptive parameters dealing with robot speed will have the units in the Arc Tool Setup
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 Arc Tool Setup
screen in the Setup menu set to Wire feed speed units."

Procedure 1-11 Setting up the Adaptive Data


Steps
1. Press SELECT, and move the cursor to the program for which you want to set joint data and
limits.
2. Press F2, DETAIL.
3. Press F3, NEXT, until the following screen is displayed.

1-61
1. UNIVERSAL SENSOR INTERFACE
AND ADAPTIVE WELDING

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 and set the
nominal, low, and high values for these as well. You can also choose to post an error
or warning if the joint geometry (as seen by the sensor) is outside of the high/low
limits set.
Program detail
Joint data & limits 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 each laser track sensor manual to determine the joint data available for
each joint type supported, and use only the available data.
c. To set the derived variables S1 - S5, move the cursor to the corresponding line and
select the first and second break points.
Press F4, CHOICE, to select a breakpoint from the sub-window.
Make sure that the break points selected are available for the joint type.

1-62
1. UNIVERSAL SENSOR INTERFACE
AND ADAPTIVE WELDING

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


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

1-63
1. UNIVERSAL SENSOR INTERFACE
AND ADAPTIVE WELDING

Detail Weld Sch


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

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

1-64
1. UNIVERSAL SENSOR INTERFACE
AND ADAPTIVE WELDING

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 1.8 for a
complete description of the adaptive algorithm. You must have a valid KAREL program
(.PC file) loaded on the controller before performing adaptive welding.
The sensor data obtained during tracking is input to the KAREL program, which calculates
the changes required to process parameters based on the sensor data and adaptive data in the
program. The output of the KAREL program is applied to the welder and the robot to change
weld and weave parameters.
a. Move the cursor to select one of the ____ALGO.PC algorithm files and press
ENTER.
b. Move the cursor to select a KAREL program you have written and have previously
loaded.

1.7 ROOT PASS MEMORIZATION AND MULTI-PASS

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

1.7.1 Root Pass Memorization


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

Teaching RPM Instructions


During the root pass, the RPM is added to the track instruction, which records the offsets and
geometry data in the specified RPM buffer. To include an RPM instruction, select
Track/Offset, then Track RPM to yield the TRACK SENSOR[i] RPM[j] instruction, where i
is the sensor schedule and j is the RPM buffer number. Enter a valid sensor schedule number
and RPM buffer number. There are ten RPM buffers (1 to 10) available by default.
To increase the number of RPM buffers available, set the system variable
$RPM_CFG.$N_BUFFERS to the desired value. You must perform a controlled start after
changing the number of buffers.

Note: Adding and using additional RPM buffers will reduce PERM (CMOS) memory. Make
sure that adequate memory is available.

How RPM Functions


RPM records the positional offset and geometry data in a buffer in the controller SRAM
memory. This enables the controller to retain the RPM data in the cases of power cycling or
failure. Once-recorded RPM data remains in the buffer until the same buffer is overwritten.
The recording of data starts simultaneously with motion and tracking. Data for all of the
motion paths (segments) between the TRACK START and TRACK END instructions are
stored in the RPM buffer. Starting from the TRACK START position, the offset and
geometry data is recorded when the robot reaches the specified distance (given by pitch)
along the path. Refer to Figure 1-33 .

Figure 1-33. Adjusting a Weld Path by Modifying RPM Data

1-66
1. UNIVERSAL SENSOR INTERFACE
AND ADAPTIVE WELDING

Setting RPM Parameters


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

Table 1-10. RPM System Variables

SYSTEM VARIABLE DESCRIPTION


$RPM_PG.$PITCH $PITCH allows you to specify the distance between the
default : 10 mm recording of position offset information. In other words,
$PITCH specifies how often RPM will actually record
the information that the sensor is supplying. This
distance can be in time, milliseconds, or in linear
distance, millimeters, depending upon the setting of
$PITCH_ MODE . When using milliseconds, the time
between recordings must be greater than 100 ms or an
error will occur. When pitch mode is distance, the
program speed has to be adjusted so that the time
between the two records is greater than 100 ms. $PITCH
can be changed in your program by using the
PARAMETER NAME instruction. For more
information about the PARAMETER NAME
instruction, refer to the ArcTool Setup and Operations
Manual.
$RPM_PG.$PITCH_MODE $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 1-13 Setting the Pitch Mode for RPM


Steps
1. Press MENUS.
2. Select SETUP.
3. Select Sensor Sys. You will see a screen similar to the following.

1-67
1. UNIVERSAL SENSOR INTERFACE
AND ADAPTIVE WELDING

SETUP Sensor Sys


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


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

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


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

1-68
1. UNIVERSAL SENSOR INTERFACE
AND ADAPTIVE WELDING

The MP OFFSET instructions also perform adaptive welding, Multi-Pass.


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

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

Figure 1-34. Example Part

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

1-69
1. UNIVERSAL SENSOR INTERFACE
AND ADAPTIVE WELDING

Figure 1-35. Part Program

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

Note R[1] is the pass number. R[2] is the direction. If R[2] = 0, direction is forward. If R[2]
= 1, direction is backward.

Example 1-13. WELD.TP


1: 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]
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]
1-70
1. UNIVERSAL SENSOR INTERFACE
AND ADAPTIVE WELDING

14:L P[4] WELD_SPEED FINE


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

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

1.8 ADAPTIVE WELDING

This section explains how adaptive welding is accomplished during the root pass and
subsequent passes in multi-pass welding using a Karel program. You must set up all the data
required for multi-pass adaptive welding as explained in Section 1.5 . The actual adaptive
algorithm is implemented in a KAREL program as explained in this section and must be
translated into a .PC file and loaded on the controller. This .PC file must be selected as the
adaptive algorithm in the WELD.TP program.
During the root pass, the joint geometry data obtained from the laser track 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.

Figure 1-36. Adaptive Welding I/O

1-72
1. UNIVERSAL SENSOR INTERFACE
AND ADAPTIVE WELDING

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

SYSTEM VARIABLE DEFINITION


$MP_WELD.$NUM_PASSES 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
$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),
$AD_JOINT$GAP.$MIN_VAL low ($MIN_VAL) and high ($MAX_VAL)
$AD_JOINT$GAP.$MAX_VAL values for gap, mismatch, area, s1, s2, s3, s4 and
$AD_JOINT$AREA.$NOMINAL s5 set in the current weld TP program header.
$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

1-73
1. UNIVERSAL SENSOR INTERFACE
AND ADAPTIVE WELDING

$AD_CONST.$C1.$VALUE The global constant values can be accessed from


$AD_CONST.$C2.$VALUE the following system variables.
$AD_CONST.$C3.$VALUE
$AD_PASS.$CP1 These system variables store the pass-specific
$AD_PASS.$CP2 constant values.
$AD_PASS.$CP3

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

Example 1-14. Example Adaptive Welding Algorithm


--------------------------------------------------------------------
PROGRAM buttalgo
--------------------------------------------------------------------
%COMMENT='Algorithm for Butt Joints'
%SYSTEM
%NOABORT = ERROR + COMMAND
%NOPAUSE = ERROR + COMMAND + TPENABLE
%NOBUSYLAMP
%NOLOCKGROUP
%ENVIRONMENT srdef
%ENVIRONMENT madef
%INCLUDE klevccdf
VAR
-- measured variables (sensor output)
gap: REAL
-- weld parameters (from program header)
nom_speed, min_speed, max_speed: REAL
-- weave parameters (from program header)
-- nominal values may change for each pass
-- min and max remain the same for all passes

1-74
1. UNIVERSAL SENSOR INTERFACE
AND ADAPTIVE WELDING

nom_ampl, min_ampl, max_ampl : REAL


nom_freq, min_freq, max_freq : REAL
nom_ldwl, min_ldwl, max_ldwl : REAL
nom_rdwl, min_rdwl, max_rdwl : REAL
-- joint parameters (from program header)
nom_gap, min_gap, max_gap: REAL
-- constants (from program header)
-- c1, c2, c3 remain the same for all passes
-- cp1, cp2 and cp3 may change for each pass
c1, c2, c3 : REAL
cp1, cp2, cp3 : REAL
-- Output variables
speed : REAL
ampl : REAL
freq : REAL
ldwl : REAL
rdwl : REAL
-- other variables
------------------------------------------
BEGIN -- Begin buttalgo
-- This routine executes the adaptive algorithm
-- Read $SRAD_IN and fill out $SRAD_OUT
-- Header data can be accessed from $MP_WELD, $MP_PASS
-- $AD_WELD, $AD_JOINT, $AD_CONST and $AD_PASS
-- read the header data from system variables
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
1-75
1. UNIVERSAL SENSOR INTERFACE
AND ADAPTIVE WELDING

cp1 = $AD_PASS.$CP1
cp2 = $AD_PASS.$CP2
cp3 = $AD_PASS.$CP2
-- read sensor input from $SRAD_IN
gap = $SRAD_IN.$GAP
-- set the other variables
-- adaptive algorithm
IF ( gap < min_gap ) THEN
ampl = min_ampl -- set wv amplitude to minimum
freq = max_freq -- set wv frequency to maximum
speed = max_speed -- set weld speed to maximum
ENDIF
IF ((gap >= min_gap) AND (gap < nom_gap)) THEN
-- set the weave amplitude to half the gap
-- minus a constant to not hit the walls
-- Note: The constant for amplitude change can be different for
each pass
ampl = (gap/2) - cp1
-- increase the speed proportional to the gap
speed = nom_speed * (1 + (nom_gap - gap) * c1)
-- Change frequency proportional speed
freq = nom_freq * speed / nom_speed
ENDIF
IF ((gap >= nom_gap) AND (gap < max_gap)) THEN
-- set the weave amplitude to a half the gap
-- 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


1-76
1. UNIVERSAL SENSOR INTERFACE
AND ADAPTIVE WELDING

IF (freq < min_freq) THEN freq = min_freq; ENDIF


-- Adapt dwell
ldwl = nom_ldwl * gap/nom_gap
rdwl = nom_rdwl * gap/nom_gap
-- set the results in $SRAD_OUT
$SRAD_OUT.$wd_sch.$wspeed = speed
$SRAD_OUT.$wv_sch.$amplitude = ampl
$SRAD_OUT.$wv_sch.$frequency = freq
$SRAD_OUT.$wv_sch.$dwell_right = rdwl
$SRAD_OUT.$wv_sch.$dwell_left = ldwl
END buttalgo

1-77
1. UNIVERSAL SENSOR INTERFACE
AND ADAPTIVE WELDING

1.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
Universal Sensor Interface 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 Universal Sensor
Interface option. Each application requires a continuous block of seven registers and a
continuous block of six position registers.

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

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

1-78
1. UNIVERSAL SENSOR INTERFACE
AND ADAPTIVE WELDING

Figure 1-37. MIG_CRS

• Setting of position register


Ex. If R[N+2] = 1
• PR[1] : Calculated data
• PR[2] : Searched point 1
• PR[3] : Searched point 2
• PR[4] : Searched point 3
• PR[5] : Searched point 4
• Set the registers and the position registers according to Section 1.9.1
• In MIG_CRS application, the register R[N+4] determines the posture of calculated PR
as below.
R[N+4] = 1 : Use the posture of the first searched position
R[N+4] = 2 : Use the posture of the last searched position
Refer to Example 1-15 .
Example 1-15. Example Program with MIG_CRS
Example Program
1: J P[1] 100% Fine
2: J P[2] 100% Fine
3: SENSOR SEARCH START
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

1-79
1. UNIVERSAL SENSOR INTERFACE
AND ADAPTIVE WELDING

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

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

Figure 1-38. MIG_CRS2

• Setting of position register


Ex. If R[N+2] = 1
• PR[1] : Calculated data
• PR[2] : Searched point 1
• PR[3] : Searched point 2
• PR[4] : Searched point 3
• Set the registers and the position registers according to Section 1.9.1
• MIG_CRS2 also uses R[N=4] to determine the posture of the calculated point.
R[N+4] = 1 : The posture of the first searched position.
R[N+4] = 2 : The posture of the last searched position.
Refer to Example 1-16 .

Example 1-16. Example Program with MIG_CRS2


Example Program
1: J P[1] 100% Fine
2: J P[2] 100% Fine

1-80
1. UNIVERSAL SENSOR INTERFACE
AND ADAPTIVE WELDING

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
SENSOR SEARCH POINT [1]
9: SENSOR SEARCH END
10: J P[4] 100% Fine
11: SENSOR SEARCH START PR[4]
12: SENSOR SEARCH POINT [1]
13: SENSOR SEARCH END
14: R[32] = 11
15: R[11] = 1
16: R[12] = 0
17: R[13] = 1
18: R[14] = 0
19: R[15] = 1
20: CALL MIG_CRS2
21: IF R[14] = 0 JUMP LBL[99]
22: J PR[1] 100% Fine
23: LBL[99]

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

Figure 1-39. MIG_VECTOR

• Setting of position register


Ex. If R[N+2] = 1
• Position register [1] : Calculated data
• Position register [2] : Searched point 1
• Position register [3] : Searched point 2
1-81
1. UNIVERSAL SENSOR INTERFACE
AND ADAPTIVE WELDING

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

Example 1-17. Example Program with MIG_VECTOR


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

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

Figure 1-40. MIG_CIRCLE

1-82
1. UNIVERSAL SENSOR INTERFACE
AND ADAPTIVE WELDING

• Setting of position register


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

Example 1-18. Sample Program


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

1-83
1. UNIVERSAL SENSOR INTERFACE
AND ADAPTIVE WELDING

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

Figure 1-41. MIG_FRAME

Setup for registers:


• Set registers R[N], R[N+1], R[N+2], and R[N+3] as described in Section 1.9.1 .
• PR[M] : Calculated data
• PR[M+1] : Search point 1
• PR[M+2] : Search point 2
• PR[M+3] : Search point 3
• PR[M+4] : Search point 4 (when R[N+4] =2. See below.)
• PR[M+5] : Nominal value storage
• Register R[N+4] is used to control the method applied to calculating the frame.
• When R[N+4]=1, the Frame is calculated from three searches using the KAREL
FRAME instruction. When R[N+4]=2, the Frame is calculated from four searches
using the MIG_CRS method. Refer to Section 1.9.2 for search position requirements.
When R[N+4]=3, the Frame is calculated from three searches using the MIG_CRS2
method. Refer to Section 1.9.3 for search position requirements.
• Register R[N+5] contains the calculation error (in minutes).
• Register R[N+6] indicates if a nominal frame value is to be stored in Position Register
PR[M+5].

Setting the Nominal Frame in PR[M+5]


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

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 1-19. Example Program with MIG_FRAME


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

1.9.7 Sample Applications


This section contains sample applications.

1-85
1. UNIVERSAL SENSOR INTERFACE
AND ADAPTIVE WELDING

MIG_CROSS and MIG_VECTOR Application


Four points 1, 2, 3, and 4 are searched for by using MIG_CROSS and MIG_VECTOR. Then,
welding of a desired length can be performed from point A toward point B. See Figure 1-42 .

Figure 1-42. MIG_CROSS and MIG_VECTOR Application

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

Example 1-20. MIG_CROSS and MIG_VECTOR Sample Program


Example Program
1: J P[1] 100% FINE
2: J P[2] 100% FINE
3: SENSOR SEARCH START PR[2]
4: SENSOR SEARCH POINT [1] LBL[99]
5: SENSOR SEARCH END
6: J P[3] 100% FINE
7: SENSOR SEARCH START PR[3]
8: SENSOR SEARCH POINT [2] LBL[99]
9: SENSOR SEARCH END
10: J P[4] 100% FINE
11: SENSOR SEARCH START PR[4]
12: SENSOR SEARCH POINT [3] LBL[99]
13: SENSOR SEARCH END
14: J P[5] 100% FINE
15: SENSOR SEARCH START
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

1-86
1. UNIVERSAL SENSOR INTERFACE
AND ADAPTIVE WELDING

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

Figure 1-43. MIG_CROSS and MIG_FRAME Application

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

Example 1-21. MIG_CROSS and MIG_FRAME Sample Program


Example Program
1: UFRAME_NUM = 1
2: J P[1] 100% FINE
3: J P[2] 100% FINE
4: SENSOR SEARCH START PR[2]
5: SENSOR SEARCH POINT [1] LBL[99]
6: SENSOR SEARCH END
7: J P[3] 100% FINE
1-87
1. UNIVERSAL SENSOR INTERFACE
AND ADAPTIVE WELDING

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

Example 1-22. WELD01.TP


Example Program
1: R[1]=AR[1]
2: R[2]=AR[2]
3: IF R[2]=1,JMP LBL[3]
4:
5: IF R[1]>1,JMP LBL[2]
6: ! ROOT PASS
7: SENSOR SEARCH START PR[3]
8: SENSOR SEARCH POINT[3]
9: SENSOR SEARCH END

1-88
1. UNIVERSAL SENSOR INTERFACE
AND ADAPTIVE WELDING

10:
11: Track SENSOR[3]
SENSOR[3] RPM[3]
12: L PR[3] 20mm/sec FINE
: Arc Start[99]
13: Weave Sine[99]
14: L P[4] WELD_SPEED FINE
: Arc End[99]
15: Weave End
16: Track End
17: J P[5] 10% FINE
18: END
19:
20: LBL[2:OTHER PASSES]
21: MP Offset PR[99] RPM[3]
22: J PR[3] 10% FINE
: Arc Start[99]
23: Weave Sine[99]
24: L P[4] WELD_SPEED FINE
: Arc End[99]
25: Weave End
26: MP Offset End
27: J P[5] 10% FINE
28: END
29:
30:
31: LBL[3:REVERSE PASSES]
32: LOCK PREG
33:J P[5] 10% FINE
34: MP Offset
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]

1-89
1. UNIVERSAL SENSOR INTERFACE
AND ADAPTIVE WELDING

Figure 1-44. WELD01.TP (Continued)

Figure 1-45. Adaptive Welding Applications

1-90

Вам также может понравиться