Professional Documents
Culture Documents
Contents
23–1
23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR MAROC73AR04071E REV A
23–2
MAROC73AR04071E REV A 23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR
23.1 OVERVIEW
The Adaptive Welding feature allows you to adjust the weld process to compensate for the variation in
the weld joint geometry. The adaptive welding feature works in conjunction with the seam tracking
feature, which adjusts the path of the TCP to compensate for variations in joint location. Adaptive
Welding uses a Servo-Robot vision sensor to scan the weld joint as it is being welded. The data
provided by the Servo-Robot sensor can be used by the Adaptive Welding feature to automatically
adjust weld and weave parameters to optimize the quality of the weld.
When you use Adaptive Welding with the Multi-Pass feature, the joint location and geometry data
obtained during the Root Pass is memorized with the Root Pass Memorization feature (RPM) and later
re-used for tracking and adaptive welding on the subsequent passes with the Multi-Pass (MP) feature.
An Adaptive Welding system consists of the following hardware and software components:
• Install and configure the Servo-Robot vision sensor using the WinUser software.
• Install the Servo-Robot software option on your controller
• Define a sensor frame using the ten point method.
• Write and execute a program that contains Multi-Pass and Adaptive Welding data and track/offset
instructions.
23–3
23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR MAROC73AR04071E REV A
Servo Robot
User Interface
WinUser software • Track/Offset Instructions
• Track Schedules
• Adaptive Schedules
Serial Line
• Sensor setup
• Joint Library Weld
(PC Not required Power
during production) Supply
+ –
Servo
Robot
Control
• Sensor Control • Servo Robot Sensor Interface
• Metrology • Arc Vision Seam Tracking
• Template Matching • Adaptive Weld/Weave
• RPM/MP
• You can use only one (1) Servo-Robot sensor per robot controller.
• In a multi-arm robot cell, if more than one robot must have a Servo-Robot sensor, you must
configure the system with one robot controller for each robot that will carry a sensor.
• If a multi-arm system is configured with one robot controller, you can use one (1) Servo-Robot
sensor but it must be attached to Group 1.
• The Servo-Robot sensor is connected to the robot controller using an available RS-232C serial
port which is configured using the "Sensor" selection on the PORT INIT menu and the data
rate must be either 9600 Baud or 19.2 KBaud.
• There is no support with the Servo-Robot sensor for stationary tracking. This means that the
robot carrying the sensor must have some motion.
23–4
MAROC73AR04071E REV A 23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR
• All tracking motion must be Linear Motion type. This means that circles and curves are taught
as linear segments. The sensor must compensate for both the part-to-part variations as well as
the difference between the taught linear path and the nominal part shape. Coordinated Motion is
supported as long as the specified tracking motion is Linear and subject to the limitation regarding
stationary tracking.
• Sensor feedback data is limited to X, Y, Z, gap, area, and B1-Bn breakpoint coordinates,
depending on the selected joint template (lap, fillet, v-groove, etc.). No orientation or trajectory
information is returned by the sensor so the user TP program must "steer" the sensor to maintain
the sensor scan line nominally transverse to the weld joint.
• Adaptive weld process control is implemented using a specific TP programming method. All
Weld, Weave, Multi-Pass, and sensor data is stored in the TP program header. Each weld joint
(regardless of how many weld passes) has a separate TP program that is called from a MAIN.TP
program that handles the sequence of welding for the overall part.
• There is no support for a sensor rotator with the Servo-Robot Sensor Interface.
• Tracking motion with integral extended axes beyond one (a seventh axis such as an integral
rail) is not qualified.
Refer to the Servo-Robot Installation and Operation Manual for information about how to set up the
Servo-Robot sensor. The VISUS Image Processing Software Manual contains definitions of joint
types supported by the Servo-Robot sensors.
Note Adaptive Welding supports only the joints supported by the Servo-Robot sensor. In order to use
Adaptive Welding effectively, you need to know the joint definitions and measurements provided by
the Servo-Robot sensor for each joint type. You need to configure the Servo-Robot sensor’s joint
parameters on the Servo-Robot sensor controller with the WinUser software.
Refer to the WinUser software documentation to set up the Servo-Robot sensor interface with your PC.
23–5
23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR MAROC73AR04071E REV A
In addition to the setup requirements described in the Servo-Robot Sensor Installation and Operation
manual, you need to install the following components on your controller:
Connect the Servo Robot control to the robot controller using the wiring diagram shown in Figure
23–2 .
Sensor Controller
Connector CN3 Controller
Operator Panel Board
D
B
EMGIN2
A
EMGIN1
+24V
24V Relay
The EMGIN1 and EMGIN2 connections are located on the PCB on the door inside the on the back of
the operator panel. There will be a jumper installed from the factory that will need to be removed for
the circuit to work correctly.
23–6
MAROC73AR04071E REV A 23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR
FANUC Robotics requires that a warning light be attached to the operator box for a robot with an
A-size controller or to the controller cabinet for robots with a B-size controller. The light should be
attached as shown in Figure 23–3 . Refer to the Servo-Robot documentation for specifications on
connector CN4.
Controller
A
Operator Box
External Power
Supply
Your installation should conform to safety requirements of the site, acceptable standards, and legal
requirements of appropriate governing bodies where the system is to be installed.
Connect the communications cable to the Servo-Robot controller box from the robot controller
using the wiring diagram shown in Figure 23–4 .
23–7
23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR MAROC73AR04071E REV A
Null Modem
The controller uses the Servo Robot sensor interface function to communicate with the Servo-Robot
sensor controller. Select and configure one of the communications ports from the following list:
Use Procedure 23-1 and Procedure 23-2 below to configure and verify the controller to sensor
controller communication.
Conditions
• The controller is properly configured with the Servo-Robot software option installed.
• A full NULL modem cable is installed between the Sensor Controller CN6 port and the controller
communication port P2 or P3.
Steps
1. Press MENUS.
2. Select SETUP.
3. Press F1, [TYPE].
4. Select Port Init.
5. Move the cursor to P2 or P3
6. Press F3, DETAIL.
7. Set up the port as follows:
23–8
MAROC73AR04071E REV A 23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR
Conditions
• The controller is properly configured with the Servo-Robot software option installed.
• A full NULL modem cable is installed between the Smart Box CN6 port and the controller
communication port P2 or P3.
• Proper safety equipment is in place and proper safety procedures have been performed.
• The Servo-Robot sensor controller is powered and sensor ON/OFF functions (using Servo-Robot
WinUser software on a PC) are working properly.
• The laser is turned off.
Steps
1: SENSOR ON [1]
2: WAIT 5sec
3: SENSOR OFF[END]
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:
The SENSOR ON and SENSOR OFF instructions are in the SENSOR category of the [INST]
sub-menu.
23–9
23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR MAROC73AR04071E REV A
If there is a bad RX line at the robot controller , the sensor will turn on, but the program
will pause with the following error:
Cause code:
23.3.1 Overview
In order for Adaptive Welding to adjust the path of the robot’s TCP to track the weld joint, the
location of the joint relative to the coordinates of the TCP must be calculated by Adaptive Welding.
This is why it is important to accurately define the sensor frame, which is the physical location of the
Servo-Robot sensor relative to the robot’s faceplate.
This section describes how to set up the sensor frame, which must be done before you use the
Servo-Robot vision sensor on your controller.
Prior to setting up the sensor frame, you must have defined an accurate tool frame. If you have not
calculated a tool frame, refer to Section 4.1 for information on setting up a tool frame. Refer to
Section 23.3.6 to set up the sensor frame with the ten point method. If you have already calculated
a tool frame and you know the X,Y Z, W, P, and R values of the sensor frame, you can enter the
coordinates for it with the direct entry method, which is shown in Section 23.3.5
Servo-Robot uses the tool center point, TCP, as a reference for calculating offset data during tracking.
You must set up the TCP by defining the tool frame prior to using the sensor to scan welds.
Note FANUC Robotics recommends that you set up your tool frame with the six point method. Refer
to Section 4.1.2 to set up the tool frame using the six point method.
23–10
MAROC73AR04071E REV A 23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR
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).
After setting the TCP, jog the robot in the TOOL frame coordinate system to verify that the TCP point
and orientation are correct: jog the robot using the TOOL coordinate system to a pointing device and
rotate the tool about x, y, and z. The TCP should stay in one place.
23.3.5 Setting Up the Sensor Frame Using the Direct Entry Method
If you have previously calculated a sensor frame, and you have the values of the frame’s x, y, z, w, p,
and r coordinates, you can use the direct entry method to enter the coordinates of your sensor frame.
Use Procedure 23-3 to directly enter your tool frame coordinates.
Note If you are setting up the Servo-Robot sensor for the first time, use the ten point method
shown in Procedure 23-5 .
ITEM DESCRIPTION
Conditions
• You have previously calculated a sensor frame with the ten point method, and you have the x, y,
z, w, p, and r coordinates of that sensor frame.
Steps
1. Press MENUS.
2. Select SETUP.
3. Press F1, [TYPE].
23–11
23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR MAROC73AR04071E REV A
4. Select Sensor Frames. You will see a screen similar to the following
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.
1 X: 202.321
2 Y: 1042.
3 Z: 0.000
4 W: 0.000
5 P: 0.000
6 R: 0.000
23.3.6 Setting Up the Sensor Frame Using the Ten Point Teaching Method
The Ten Point Method is the recommended method to set the camera frame. It uses a known reference
joint with ten taught points. The 1 st and 2 nd TCP reference points establish a vector of known length
23–12
MAROC73AR04071E REV A 23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR
on the reference/calibration joint. The robot moves between the 3 rd through 10 th points with different
xyz offsets and orientations around the TCP . At each position the camera looks at the joint. When all
of the position moves have been completed the new camera frame and origin offsets are calculated.
The reference joint must be made in a straight line. A sharp, clean edged lap joint with no gap is
recommended. This calibration joint should not be part of the work piece. It may, however, be
incorporated as part of the fixture or robot cell as a permanent reference.
Two additional programs are called by the calibration routine, LASON.TP, shown in Figure 23–5 ,
and SEARCH.TP, shown in Figure 23–6 .
LASON
1/2
1: SENSOR ON[1]
[End]
SEARCH
1/4
1: SENSOR SEARCH START PR[1]
2: SENSOR SEARCH POINT[1]
3: SENSOR SEARCH END
[End]
Note The SEARCH.TP program uses Position Register 1 as shown in line 1 and Search Schedule 1,
as shown in line 2 of Figure 23–6 . You must always use PR[1] for calibration.
The joint number is part of the Sensor Schedule, and it determines which joint from the Servo-Robot
Joint Library will be searched. You can use Procedure 23-4 to change the joint number to be searched,
or other information within a new Sensor Schedule, providing you have set up the Servo-Robot
sensor controller.
Note It is important that all the Search bias settings are set to ZERO in the Sensor Search schedule
for calibration.
23–13
23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR MAROC73AR04071E REV A
ITEM DESCRIPTION
Servo-Robot This item identifies the sensor schedule and provides an area in which to add a comment
Schedule: for the schedule.
[Comment]
SR Track Joint This item selects the joint to be detected for tracking from the Servo-Robot joint library.
Num
Tracking Type This item specifies the type of tracking that will be performed: STANDARD tracking or
STATIONARY tracking. By default, tracking type is set to STANDARD. Stationary tracking
refers to tracking an object that is being rotated by an extended axis. Currently, only
STANDARD tracking is supported.
Motion This item specifies how reactive the robot motion system will be to sensor data. A low value
Sensitivity of motion sensitivity provides a slow motion response, large filtering buffer, and so forth.
High values for motion sensitivity might be potentially unstable, but are very reactive
to sensor data.
A value of 1 is least sensitive, 5 is most sensitive. The default value is 3. Motion sensitivity
determines the motion buffer distance and the number of consecutive failed scans allowed
before the robot stops tracking.
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.
Tack Avoidance This item allows you to specify whether the tack welding avoid function is enabled or
Default: FALSE disabled.
Tack Threshold This item allows you to specify the tack width (mm) from the weld line of the detected
Default: 0 mm position.
Range: 0-100
mm
Tack Length This item specifies the maximum length of the tack-welded section in the direction of
Default: 0 mm the weld line. If the detection of no position or of a position far from the tack threshold
Range: 0-500 continues, exceeding this length, an alarm is raised to stop the program. Specify the length
mm in millimeters.
23–14
MAROC73AR04071E REV A 23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR
SR Search Joint This item selects the joint number from the Servo-Robot’s joint library for searching
Num purposes.
Search Type Defines the type of searching. There are two kinds of search:
• Position search calculates a "real position" in space to which the robot can move.
Detection Count Specifies the number of joint detections to be executed per one Sensor Search Point
instruction. The recommended detection count is 3.
Retry Count Specifies the number of retry motions that will automatically be performed. If the value is 0 ,
Range: 0-5 the joint will only be searched in one location.
Retry Direction Defines the direction that the robot will move if Retry Count is greater than zero and a
search fails. The robot moves the amount indicated by Retry Distance and in the direction
indicated by Retry Direction : x, -x, y, -y, z, -z in the sensor frame.
Retry Distance Specifies the distance the sensor moves before the search is tried again. Distance must
be greater than 0 to have motion occur. It is recommended that you use 3 mm for the
Retry Distance .
Y-Bias (Search) Adds an offset to the Y value of the found joint location in the sensor frame. This is used
to obtain proper alignment of the welding wire to the joint.
Z-Bias (Search) Adds an offset to the Z value of the found joint location in the sensor frame. This is used to
obtain proper location of the welding wire in the joint.
Conditions
• You have set up the Servo-Robot sensor controller with the WinUser Software, and you have
taught a sensor frame.
Steps
1. Press DATA, then press F1, [TYPE]. Select "Sensor Sched" and press ENTER. You will see
a screen similar to the following.
23–15
23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR MAROC73AR04071E REV A
2. Press F3, DETAIL. You will see a screen similar to the following.
Tracking Setup
2 SR Track Joint Num 1
3 Tracking Type Standard
4 Motion Sensitivity 3
5 Y-Bias (mm) 0.00
6 Z-Bias (mm) 0.00
7 Stationary Track Frame 0
8 Tack Avoidance Disable
9 Tack Threshold(mm) 2.00
10 Tack Length (mm) 40.00
Search Setup
11 SR Search Joint Num 1
12 Search Type Position
13 Detection Count 3
14 Retry Count 0
15 Retry Direction X
16 Retry Distance (mm) 3.0
17 Y-Bias (mm) 0.00
18 Z-Bias (mm) 0.00
• SR Search Joint Num is the joint library number in the Servo-Robot controller. This must
correspond to the reference joint used in the ten point calibration method.
23–16
MAROC73AR04071E REV A 23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR
Welding
Torch Sensor
Reference
Point 1 X
X
Workpiece
Side X
Items 2-10 contain tracking data, and items 11-18 contain search data. Refer to Section 23.4 for a
description of the items on this screen.
ITEM DESCRIPTION
Sensor This item displays the X, Y, and Z components of the sensor frame.
TCP Reference Point 1 This item allows you to teach the TCP reference points.
and 2
Reference Pair 1-4 This item allows you to record the reference positions for calibration.
Procedure 23-5 Ten Point Calibration for Servo-Robot Sensor Frame Setup
Conditions
23–17
23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR MAROC73AR04071E REV A
• Proper safety equipment is in place and proper safety procedures have been performed.
• The Servo-Robot sensor controller is turned on, and you have verified the Servo-Robot sensor
ON/OFF functions with the WinUser software on your PC.
• A Servo-Robot joint definition exists in the Serv-oRobot joint library for the calibration joint.
• You have set up a sensor schedule that uses the joint number defined in the Servo-Robot joint
library.
• In this example a lap joint is used to calibrate the sensor frame. You must set Track Point Method
to 1 in the VISUS configuration to allow the scan point to be measured at the top edge of the
lap joint.
• The Servo-Robot sensor’s laser is turned off.
Steps
1. Press MENUS.
2. Select SETUP.
3. Press F1, [TYPE].
4. Select Sensor Frame. You will see a screen similar to the following.
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
The reference positions must be taught with the wire tip (TCP) exactly on the joint line of the
weld. The recommended method for doing this is to mark two points on the calibration joint
at least 10 inches (254 mm) apart as shown in Figure 23–7 . These positions must also be
carefully marked on the joint since the remaining positions are taught with the laser scan line
crossing the joint exactly at these locations.
23–18
MAROC73AR04071E REV A 23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR
7. Jog the robot so that the TCP is at the first reference point, with the sensor between the two
reference points. The sensor scan should be roughly centered on the joint.
8. Move the cursor to the TCP reference Point 1.
9. Without changing the robot orientation, move the robot along the joint to the second reference
position. Record Reference Point 2.
10. See Figure 23–8 for an illustration of teaching reference points for Pair 1.
X
Workpiece
Scan Front
Line View from the Workpiece Front
Workpiece
Side Scan
Line
23–19
23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR MAROC73AR04071E REV A
11. Turn on the laser by using the laser control switch on the sensor controller. Move the cursor to
TCP reference Point 1 and press F4, MOVE_TO to move to the first reference point.
12. Change the teach pendant jogging coordinate mode to WORLD.
13. Jog the robot to place the laser scan line on the 1 st reference mark. Shift the robot position
in x, y and z directions to make sure that the TCP is NOT on the joint line. The laser scan
line must be exactly on the reference mark.
14. Move the cursor to Reference Pair 1, Point 1. Press F5, RECORD to record Pair 1-Point 1.
15. Jog the robot in WORLD mode, using only the X, Y & Z jog keys, and move the laser scan line
to the 2 nd reference mark. Again, make sure that the TCP is NOT on the joint line. It should be
offset by different amounts and directions compared to Pair 1-Point 1. For the calibration to be
accurate, it is important that the scan line of the Servo-Robot sensor is positioned exactly on
the reference mark.
16. Move the cursor to Pair 1 Point 2.
17. Press F5, RECORD to record Pair 1-Point 2.
18. See Figure 23–9 for an illustration of teaching reference points for Pair 2.
X
View from the Workpiece Front
Original
orientation of
Workpiece
torch and
Front
Servo-Robot
Sensor
Workpiece Reference
Side Point 2
19. Move the cursor to reference pair 1 point 1. Press F4, MOVE TO. This will move the robot
back to the position you recorded to Pair 1 point 1. Shift the robot position in X, Y and Z
directions, and add some rotation about the TCP.
Note Make sure that the TCP is NOT on the calibration joint line. If Pair 1-Point 1 was to the
left, this time move it to the right. If it was high, make the new position low. The laser scan
line must cross exactly on the reference mark.
23–20
MAROC73AR04071E REV A 23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR
20. Move the cursor to reference pair 2, point 1. Press F5, RECORD to record Pair 2, Point 1.
21. Jog the robot in WORLD mode, using only the x, y & z jog keys, and move the laser scan line
to the 2 nd reference mark.
Note Make sure that the TCP is NOT on the calibration joint line. It should be offset by
different amounts or directions relative to Pair 2-Point 1. The scan line must cross exactly on
the reference mark.
25. Move the cursor to reference pair 1, point 1. Press F4, MOVE_TO
26. Change the teach pendant jogging coordinate mode to TOOL.
27. Rotate the robot about the TCP around the Y and Z axes by +5 to +10 degrees.
28. Change the teach pendant jogging mode back to WORLD.
29. Jog the robot using only the x, y and z jogging keys to place the laser scan line on the 1 st
reference mark while including new offsets in the x, y and z directions. The laser scan line must
cross exactly on the reference mark.
30. Move the cursor to reference Pair 3, Point 1.
31. Press F5, RECORD to record Pair 3-Point 1
32. Jog the robot using ONLY the x, y & z jog keys, and move the laser scan line to the 2 nd
reference mark. It should be offset by different amounts or directions compared to Pair 3-Point
1. As before, the scan line must cross exactly on the reference mark. Record Pair 3-Point 2.
33. Move the cursor to reference pair 3, point 2. Press F5, RECORD to record Pair 3, Point 2.
34. See Figure 23–11 for an illustration of teaching reference points for Pair 4.
23–21
23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR MAROC73AR04071E REV A
Point 4 Point 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 1 st
reference mark while including new offsets in the x, y and z directions. The laser scan line must
cross exactly on the reference mark.
40. Move the cursor to Reference pair 4, point 1. Press F5, RECORD to Record Pair 4-Point 1
41. Jog the robot using ONLY the x, y & z jog keys, and move the laser scan line to the 2 nd
reference mark. It should be offset by different amounts or directions compared to Pair 4-Point
1. As before, the scan line must cross exactly on the reference mark.
42. Move the cursor to Reference Pair 4, Point 2.
43. Press F5, RECORD to record Pair 4-Point 2
Note These last eight positions must be taught within the camera’s field of view and with the
laser scan line placed exactly on the reference marks. To check whether the joint can be found
for any reference, move the robot to the reference position, then select and run the SEARCH
program. When the SEARCH.TP program runs, it should be able to find the joint location for all
eight reference positions. If the SEARCH.TP program runs successfully, the joint can be found.
Warning
In the next step, the robot will move automatically to the points you
taught. To stop the robot immediately any time during the Calibration
Routine, release the DEADMAN switch or press the EMERGENCY
STOP button.
44. To run the calibration routine, jog the robot away from the calibration joint, near and above
Reference Point 1.
23–22
MAROC73AR04071E REV A 23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR
a. With the teach pendant enabled, make sure the robot is not in a PAUSE state or faulted
and set the desired override speed. (Usually 50% or less.)
b. Hold the SHIFT button down and press F3, EXEC. Keep the SHIFT key held down.
c. The robot will move between the pairs of points. At each position the camera will search
for the joint. When the routine is complete, a message will be shown on the teach pendant
and the program state will show "ABORTED". The new camera frame values will be
shown at the top of the screen. Write down these values for future use.
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.
Before using the Servo-Robot Sensor, you must set sensor system parameters correctly.
Table 23–4 lists the Servo-Robot sensor setup items you must define. Refer to Chapter 19 ROOT
PASS MEMORIZATION AND MULTI-PASS for information about RPM. Refer to Section 23.6.7 for
more information on automatic error recovery.
ITEM DESCRIPTION
Use Rotator This item defines whether the system has a rotator. If a rotator is installed, select
TRUE. If a rotator is not installed, select FALSE. The servo-robot sensor does not
support a sensor rotator, so this item should be FALSE.
Track Fail DO This item defines the Digital Output that will be turned ON when the Track Failure
occurs. The Track Failure is defined as one of the following alarms MIGE-027
Can’t detect joint continuously MIGE-034 Path points too close MIGE-036 Track
calculation fault MIGE-037 No MIG EYE data in buffer MIGE-038 Can’t calculate
track offset MIGE-039 Offset is too large. A setting of zero disables this feature.
(RESET will turn this output OFF)
Search Fail DO This item defines the Digital Output that will be turned ON when a Search error
occurs. A setting of 0 disables this feature. (RESET will turn this output OFF)
Laser Status DO This item defines the Digital Output that will be turned ON when the Laser Status
DI is ON and ready.
23–23
23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR MAROC73AR04071E REV A
ITEM DESCRIPTION
Laser Status DI This item defines the Digital Input that will be turned on when the Servo-Robot
sensor is on.
Track Cir Axis Num This item specifies any auxiliary axis used to rotate the work piece when stationary
tracking is executed. If the first axis in auxiliary axis setup rotates the work, set this
item 1. The value of this item can be 1, 2 or 3. NOTE: Adaptive Welding currently
does not support stationary tracking
Record Pitch for RPM This item specifies the record pitch for Root Path Memorization function (RPM).
The unit of this setting is decided in the RECORD PITCH MODE FOR RPM
VARIABLE. The minimum value is 3mm or 150msec.
Record Pitch Mode RPM This item specifies the unit of setting of RECORD PITCH FOR RPM. The mode is
selected by length (mm) or time (msec) by the function key.
Joint ID for Laser ON This item specifies the schedule number used for turning on the laser during
search. This is not currently used.
Tracking Error Recovery This item enables sensor error recovery when a sensor error occurs.
Steps
1. Press MENUS.
2. Select SETUP.
3. Press F1, [TYPE].
4. Select Sensor. You will see a screen similar to the following.
23–24
MAROC73AR04071E REV A 23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR
23.4.1 Overview
To perform seam tracking and adaptive welding using the Servo-Robot sensor, you must set up
the sensor schedules properly. This section describes the sensor data (schedules) and sensor status
information.
The sensor schedule determines the parameters used to search and track. You must set up a sensor
schedule before you use the sensor. A sensor schedule contains items that define searching and
tracking parameters.
Figure 23–12 shows an example sensor schedule LIST screen. Figure 23–13 shows an example
sensor DETAIL screen, which displays the parameters for each schedule. Refer to Table 23–5 for
a description of the schedule items.
23–25
23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR MAROC73AR04071E REV A
Tracking Setup
2 SR Track Joint Num 1
3 Tracking Type Standard
4 Motion Sensitivity 3
5 Y-Bias (mm) 0.00
6 Z-Bias (mm) 0.00
7 Stationary Track Frame 0
8 Tack Avoidance Disable
9 Tack Threshold(mm) 2.00
10 Tack Length (mm) 40.00
Search Setup
11 SR Search Joint Num 1
12 Search Type Position
13 Detection Count 1
14 Retry Count 0
15 Retry Direction X
16 Retry Distance (mm) 3.0
17 Y-Bias (mm) 0.00
18 Z-Bias (mm) 0.00
ITEM DESCRIPTION
Servo-Robot Schedule: This item identifies the sensor schedule and provides an area in which to add
[Comment] a comment for the schedule.
SR Track Joint Num This item selects the joint to be detected for tracking from the Servo-Robot joint
library.
Tracking Type This item specifies the type of tracking that will be performed: STANDARD
tracking or STATIONARY tracking. By default, tracking type is set to STANDARD.
Stationary tracking refers to tracking an object that is being rotated by an extended
axis. Currently, only STANDARD tracking is supported.
23–26
MAROC73AR04071E REV A 23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR
ITEM DESCRIPTION
Motion Sensitivity This item specifies how reactive the robot motion system will be to sensor data.
A low value of motion sensitivity provides a slow motion response, large filtering
buffer, and so forth.
High values for motion sensitivity might be potentially unstable, but are very
reactive to sensor data.
A value of 1 is least sensitive, 5 is most sensitive. The default value is 3.
Motion sensitivity determines the motion buffer distance and the number of
consecutive failed scans allowed before the robot stops tracking.
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.
Tack Avoidance This item allows you to specify whether the tack welding avoid function is enabled
Default: FALSE or disabled. For the tack welding avoid function, refer to Tack Welding function
in Section 23.6.7
Tack Threshold This item allows you to specify the tack width (mm) from the weld line of the
Default: 0 mm detected position.
Range: 0-100 mm
Tack Length This item specifies the maximum length of the tack-welded section in the direction
Default: 0 mm of the weld line. If the detection of no position or of a position far from the tack
Range: 0-500 mm threshold continues, exceeding this length, an alarm is raised to stop the program.
Specify the length in millimeters.
SR Search Joint Num This item selects the joint number from the Servo-Robot’s joint library for searching
purposes.
23–27
23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR MAROC73AR04071E REV A
ITEM DESCRIPTION
Search Type Defines the type of searching. There are two kinds of search:
• Position search calculates a "real position" in space to which the robot can
move.
Detection Count Specifies the number of joint detections to be executed per one Sensor Search
Point instruction. The recommended detection count is 3.
Retry Count Specifies the number of retry motions that will automatically be performed. If the
Range: 0-5 value is 0 , the joint will only be searched in one location.
Retry Direction Defines the direction that the robot will move if Retry Count is greater than zero
and a search fails. The robot moves the amount indicated by Retry Distance and
in the direction indicated by Retry Direction : x, -x, y, -y, z, -z in the sensor frame.
Retry Distance Specifies the distance the sensor moves before the search is tried again. Distance
must be greater than 0 to have motion occur. It is recommended that you use
3 mm for the Retry Distance .
Y-Bias (Search) Adds an offset to the Y value of the found joint location in the sensor frame. This is
used to obtain proper alignment of the welding wire to the joint.
Z-Bias (Search) Adds an offset to the Z value of the found joint location in the sensor frame. This is
used to obtain proper location of the welding wire in the joint.
The motion control software uses a ratio of leading and trailing data to calculate the offset to planned
motion. This determines how quickly sensor offsets are applied during motion.
The data in the motion buffer distance is applied based on motion sensitivity setting. See Figure
23–14 .
23–28
MAROC73AR04071E REV A 23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR
Figure 23–14. Track Length and the Ratio Between the Front and the Rear Areas
Mechanical Interface
Coordinate System
X
Z
Laser
light
X Nominal work surface
Back distance
Front distance
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.
23–29
23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR MAROC73AR04071E REV A
Motion 1 2 3 4 5
Sensitivity
Motion buffer 25 20 15 10 8
distance (mm)
Number of 11 9 6 4 3
consecutive
failed scans
Tracking errors provide HELP messages that indicate why a tracking failure occurred. If, for example,
the cause is lost data scans, then the motion sensitivity should be decreased, or the detection sensitivity
changed to improve joint detections.
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.
23–30
MAROC73AR04071E REV A 23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR
6. To display the items in the DETAIL screen , press F3, DETAIL. You will see a screen
similar to the following.
Tracking Setup
2 SR Track Joint Num 1
3 Tracking Type Standard
4 Motion Sensitivity 3
5 Y-Bias (mm) 0.00
6 Z-Bias (mm) 0.00
7 Stationary Track Frame 0
8 Tack Avoidance Disable
9 Tack Threshold(mm) 2.00
10 Tack Length (mm) 40.00
Search Setup
11 SR Search Joint Num 1
12 Search Type Position
13 Detection Count 1
14 Retry Count 0
15 Retry Direction X
16 Retry Distance (mm) 3.0
17 Y-Bias (mm) 0.00
18 Z-Bias (mm) 0.00
The default number of sensor schedules is ten. The number of schedules can be increased to 255. If
the number of schedules is reduced, the schedule data is erased accordingly. Use Procedure 23-8 to
change the number of sensor schedules.
Steps
1. Press MENUS.
2. Select SYSTEM.
23–31
23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR MAROC73AR04071E REV A
The detection log is a screen where the sensor reports the results of every data scan from the sensor,
either from searching or tracking. This is useful while setting up a production job or troubleshooting
a search or tracking failure.
Detection Data
If a tracking error has occurred due to detection problems, it might be necessary to determine the
point in the detection log data that corresponds to the current tracking position. For detection data
at the current TCP location, you must look at approximately 50 mm of scans from number 1 in the
detection log. The exact value is given by the sensor lead distance, which is the distance between
the TCP and the laser scan.
sampling rate + 1
$SR_SETUP.$update_time
23–32
MAROC73AR04071E REV A 23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR
50 (mm)
10 (scan/sec) + 25 scans
20 (mm/sec)
Review the detection data and all preceding data to diagnose the problem. Also, observe the joint and
TCP to determine if the appearance of the joint is the cause of the problem.
For the example calculation, the fault occurs at or near data item 25 in the detection log.
The detection log contains 200 detections from the sensor. Table 23–7 lists and describes each item on
the detection log. Use Procedure 23-9 to display the detection log.
Item Number This item indicates the sequence of data input to the screen. The top, number 1,
is the newest data. The bottom, number 200, is the oldest data. New data that
comes into the detection log is displayed at the top and old data at the bottom
is discarded.
Code xxx This item indicates information about an individual data scan. The first digit
indicates a detection code. For example, 0 means the sensor locates the joint
properly, 3 means incorrect sensor data, and 4 means insufficient good sensor
data. The second character indicates the data type, as follows:
• S = Search
• T = Track
• C = Cleared data
The last digit 0 is unused. For example, 0T indicates a successful track data.
X / Y / Z / Gap The data shown under the X, Y, Z, and Gap columns indicate the calculated values
for the joint that was scanned.
• X, Y, and Z indicate the calculated positional difference from the sensor frame
origin to the actual joint location.
23–33
23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR MAROC73AR04071E REV A
Steps
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
• The detection log will not display the data while the sensor is actively gathering data
(for example, during tracking).
• When the detection log is displayed, any new data is not automatically updated to the
screen. To update the information on the screen, display any other screen and then re-display
the detection log.
• In the detection log, detection code = 0 means the sensor located the joint properly.
• In the detection log, data type S = Search, T = Track, C = Cleared.
Caution
There is no confirmation when you clear the detection log. After the log has
been cleared, it cannot be restored.
3. To clear the entire detection log , press SHIFT and F3, CLEAR.
4. To display HELP , move the cursor to the desired detection index, and press F5, HELP. See the
following screen for an example.
23–34
MAROC73AR04071E REV A 23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR
$DTCT_CODE = 4
Insuficient good data.
STATUS Detect Log
Code X Y Z Gap
2 0T 0 14.25 19.23 -33.6 11.48
3 4T 0 44.78 -.79 139.9 0.00
4 4T 0 44.78 -.79 139.9 0.00
5 4T 0 44.78 -.79 139.9 0.00
6 4T 0 44.78 -.79 139.9 0.00
7 4T 0 44.78 -.79 139.9 0.00
When you are finished, press the PREV key to display the main detection log screen.
The nominal values for weld, weave, run-in, burnback, and crater fill schedules for each pass must
be set. This data will be used when the weld joint is nominal and there is no variation in the joint
geometry along the weld path. Use Procedure 23-10 to set up multi-pass data.
Process parameter names for welding equipment vary based on the welding power supply and the
weld process you have selected. These are column headers in many of the tables.
Adaptive parameters dealing with robot speed will have the units in the Weld System screen in the
Setup menu set to “Weld Speed Function - Default Unit.”
Adaptive parameters dealing with wire feed speed will have the units in the Weld Equipment screen in
the Setup menu set to “Wire feed speed units.”
23–35
23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR MAROC73AR04071E REV A
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
Press F3, NEXT. You will see a screen similar to the following.
23–36
MAROC73AR04071E REV A 23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR
Program detail
1/12
Program name: WELD01
Last Pass: 0 Status: ********
Multi-pass Data:
1 Number of passes 0
2 Weld schedules <*DETAIL*>
3 Weave schedules <*DETAIL*>
4 Multi-pass offsets <*DETAIL*>
5 Run-in schedules <*DETAIL*>
6 Burnback schedules <*DETAIL*>
7 Crater fill Schedules <*DETAIL*>
Note You must use one teach pendant program per weld. All of the passes of the weld will use
the same program, as described in Section 23.8 .
When a program is first created, the number of passes is 0 by default. When you enter the
number of passes, the default schedules and offsets for each pass are created.
If you increase the number of passes in an existing program (weld), the data for additional passes
is created. Similarly, if you decrease the number of passes, the data for those passes is deleted.
Note that the size of the teach pendant program increases by 224 bytes for each additional pass.
4. To view and edit the data, move the cursor to the item and press ENTER.
5. To view the weld schedules,
a. Move the cursor to Weld schedules and press ENTER. You will see a screen similar to
the following.
In the screens shown below, one line of data corresponds to each pass. Note that the actual
parameters (such as trim or volts) depend on the equipment that is currently selected.
Program detail
Weld schedules 1/6
Pass Trim IPM IPM
1 85.0 300.0 40
2 85.0 300.0 35
3 85.0 300.0 35
4 85.0 300.0 35
5 85.0 300.0 35
6 85.0 300.0 35
23–37
23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR MAROC73AR04071E REV A
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
Program detail
Multi-pass offsets 1/6
Pass X(mm) Y(mm) Z(mm) Wrk(deg) Trv(deg)
1 0.0 0.0 0.0 0.0 0.0
2 0.0 0.0 0.0 0.0 0.0
3 0.0 0.0 0.0 0.0 0.0
4 0.0 0.0 0.0 0.0 0.0
5 0.0 0.0 0.0 0.0 0.0
6 0.0 0.0 0.0 0.0 0.0
In addition to the x, y, and z offsets, you can specify offsets to work and travel angles. These
offsets are with respect to the tracking pass. These offsets will be applied when the multi-pass
offset instruction is used in the teach pendant program, as described in Section 23.5.2 . Refer
Chapter 19 ROOT PASS MEMORIZATION AND MULTI-PASS for the definition of the offsets.
Usually pass 1 is the tracking pass. Therefore, the offsets specified for pass 1 are never used.
However, if offsets are needed for the first pass, specify the y and z-bias values in the track
schedule.
8. To view the run-in schedules, move the cursor to Run-in schedules and press ENTER. Each
pass can have different run-in schedules as specified in the following screen. Refer to Section
3.7 for more information on run-in.
23–38
MAROC73AR04071E REV A 23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR
Program detail
Run-in schedules 1/6
Pass Trim IPM Sec
1 85.0 300.0 0.00
2 85.0 300.0 0.00
3 85.0 300.0 0.00
4 85.0 300.0 0.00
5 85.0 300.0 0.00
6 85.0 300.0 0.00
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
Program detail
Crater fill schedules 1/6
1 85.0 300.0 0.00
2 85.0 300.0 0.00
3 85.0 300.0 0.00
4 85.0 300.0 0.00
5 85.0 300.0 0.00
6 85.0 300.0 0.00
23–39
23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR MAROC73AR04071E REV A
Program detail
Weld schedule 1/6
Pass Number: 1
1 Program select: 1 [ ]
2 Command Trim 85.00 Trim
3 Command Wire feed 300.00 IPM
4 Travel speed 40 IPM
5 Delay Time 0.00 sec
12. To display the schedule DETAIL for another pass , press F2, PASS, and enter the pass
number. The data for the new pass will be displayed.
13. To view the schedule LISTING screen, press F4, EXIT, and the schedules for all of the
passes will be displayed.
14. To copy the data for the current pass to another pass , press NEXT, >, and then press F2,
COPY. The current pass is the one to which the cursor is pointing.
15. To restore the default schedule for the current pass , press NEXT, >, and then press F3,
CLEAR. The default schedule depends on the equipment selected.
16. To change the display between different screens , press F1, [TYPE], and select the screen
from the [TYPE] menu. See the following screen for an example.
1 Weld
2 Weave
3 Offsets
4 Run-in
5 Burnback
6 Crater fill
You will need to set up the data required for adaptive weaving and welding. This involves selecting
the joint and entering the nominal values and limits for joint data such as gap and area. You can also
23–40
MAROC73AR04071E REV A 23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR
set up the ranges for weld parameters such as voltage and wire feed speed, and weave parameters such
as amplitude and frequency. Refer to Procedure 23-11 .
Adaptive welding is performed using an algorithm specified in a KAREL program. This mechanism
allows you to specify different algorithms for different joints.
You must have the KAREL program (.PC file) available to perform the adaptive algorithm. This
KAREL program takes the joint geometry data provided by the sensor as inputs and calculates the new
weld and weave parameters as the robot moves along the length of the weld. This KAREL program
must be created and loaded on the controller as explained in Section 23.8 .
In addition to selecting the direct variables such as the gap, mismatch or area of the joint, you can
select a variable derived from the break points of the joint you want to weld. For the definition of
the joint geometry and break points for the joints supported by the Servo-Robot Sensor, refer to the
Servo-Robot VISUS Manual .
Example
The example in Figure 23–18 shows how to select a derived variable from the joint definition. The
V-groove joint has six break points (B0 to B5) as defined in Figure 23–18 .
mismatch
B0 B1
B5
B4
B1–B2 (Z)
area
B2
B3
B1–B2 (Y)
gap
The sensor provides the break point data in addition to gap, area, and mismatch. In most cases, the
direct variables -- gap, area, and mismatch -- are sufficient to perform adaptive welding. However,
in addition to the direct variables, you can define and use derived variables, S1 to S5, for adaptive
welding. The three possible alternatives for S1 to S5 are as follows:
23–41
23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR MAROC73AR04071E REV A
Procedure
Process parameter names for welding equipment vary based on the welding power supply and the
weld process you have selected. These are column headers in many of the tables.
Adaptive parameters dealing with robot speed will have the units in the Weld System screen in the
Setup menu set to "Weld Speed Function - Default Unit."
Adaptive parameters dealing with wire feed speed will have the units in the Weld Equipment screen in
the Setup menu set to Wire feed speed units."
Steps
1. Press SELECT, and move the cursor to the program for which you want to set joint data and
limits.
2. Press F2, DETAIL.
3. Press F3, NEXT, until the following screen is displayed.
Program detail
Adapt data 1/5
Program name: WELD01
Note This screen allows you to set the nominal, low, and high values for the joint geometry
data. You can also configure the derived variables S1-S5 adn set the nominal, low, and
23–42
MAROC73AR04071E REV A 23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR
high values for these as well. You can also choose to post an error or warning if the joint
geometry (as seen by the sensor) is outside of the high/low limits set.
Program detail
Joint data & limits 1/8
Variable Nominal Low High Error
(mm) (mm) (mm)
1 Gap 0.0 0.0 0.0 NONE
2 Mismatch 0.0 0.0 0.0 NONE
3 Area(mm^2) 0.0 0.0 0.0 NONE
4 S1: **- *** 0.0 0.0 0.0 NONE
5 S2: **- *** 0.0 0.0 0.0 NONE
6 S3: **- *** 0.0 0.0 0.0 NONE
7 S4: **- *** 0.0 0.0 0.0 NONE
8 S5: **- *** 0.0 0.0 0.0 NONE
b. Set the nominal, low, and high values for the joint parameters.
These values are to be used by the adaptive algorithm for changing weld and weave
parameters. Some of the parameters listed in the above screen might not be meaningful for
the joint type selected. For example, there is no area value for a lap joint.
Refer to the Servo-Robot VISUS Manual to determine the joint data available for each joint
type supported, and use only the available data.
c. To set the derived variables S1 - S5, move the cursor to the corresponding line and
select the first and second break points.
Make sure that the break points selected are available for the joint type.
d. Select *, y, or z in the third column for distance type.
e. Move the cursor to the Error column and set the error severity.
Where the joint data falls outside the limits set in the above screen, an error or warning can
be posted. You have four choices for error severity: NONE, WARN, PAUSE, and ABORT.
For example, if the gap values are out of range, "MIGE-122, Gap value is out of range" is
posted if the severity is set to something other than NONE.
When the severity is NONE, range checking is not performed. When the severity is
WARN, the error message is posted as a warning only and the program execution is not
affected. Similarly, when the severity is PAUSE or ABORT, the program execution is
paused or aborted respectively.
23–43
23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR MAROC73AR04071E REV A
These error messages can be used to identify and discard joints that cannot be welded with
acceptable quality. When the joint data is within the specified limits, the adaptive algorithm
should compute the process parameters to account for the joint variation. It is expected that
the adaptive algorithm works in the entire range of the joint data specified in the above
screen. Refer to Section 23.8 for a description of the adaptive welding algorithm.
f. When you are finished setting data, press F4, EXIT, or PREV to display the Adapt data
screen.
6. Set the process limits and constants:
Note The data set in this screen can be used in the adaptive algorithm, for example, to make sure
that the process changes calculated are acceptable. The global and pass-specific constants can be
used to tune the adaptive welding algorithm without having to change the KAREL program itself.
a. Move the cursor to Proc limits & constants and press ENTER. You will see a screen
similar to the following.
b. Set the lower and upper limits for weld and weave parameters.
In addition to process data, you can use a total of six constants in the adaptive algorithm.
Constants C1, C2, and C3 are global and have the same value for all passes.
23–44
MAROC73AR04071E REV A 23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR
Constants CP1, CP2, and CP3 are pass-specific and can have different values for each pass.
The actual values can be entered in the next screen.
c. If desired, modify the names for the Global and Pass Specific Constants.
d. When you are finished setting data, press F4, EXIT, or PREV to display the Adapt data
screen.
7. Set the pass specific data:
a. Move the cursor to Pass specific data and press ENTER. You will see a screen similar to
the following.
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.
The .PC file is a KAREL program that runs the adaptive algorithm. Refer to Section 23.8 for a
complete description of the adaptive algorithm. You must have a valid KAREL program (.PC
file) loaded on the controller before performing adaptive welding.
The sensor data obtained during tracking is input to the KAREL program, which calculates
the changes required to process parameters based on the sensor data and adaptive data in the
program. The output of the KAREL program is applied to the welder and the robot to change
weld and weave parameters.
a. Move the cursor to select one of the ____ALGO.PC algorithm files and press ENTER.
23–45
23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR MAROC73AR04071E REV A
b. Move the cursor to select a KAREL program you have written and have previously loaded.
23.6 PROGRAMMING
Several instructions are available that allow sensor functions to be executed from within a teach
pendant program. These instructions are used with the standard Arc Tool instructions, such as Arc
Start, to create programs that search, track and weld.
23.6.1 Search
The search function is used to find a part prior to starting a weld. Using this information, the robot can
be programmed to properly align the welding wire with the weld joint prior to starting a weld.
• 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:
23–46
MAROC73AR04071E REV A 23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR
Warning
During the execution of the search routine, the laser will be operating
at high power levels. DO NOT look directly into the beam path. Direct
exposure can cause damage to your eyes.
A search routine is also used in combination with one or more position instructions to establish the
physical location where the search will be executed.
SENSOR SEARCH START 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.
SENSOR SEARCH POINT identifies the location in a search routine where the actual scanning
(searching) of the joint occur. The parameter values used for searching come from the sensor schedule.
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.
If the LBL[j] modifier is added at the end of the SENSOR SEARCH POINT[] instruction, program
execution jumps to LBL[j] when joint detection fails.
If you want to add the LBL[j] modifier, insert a SENSOR SEARCH POINT[] instruction, move the
cursor to the right of the instruction on the same line, press F4, [CHOICE], and select LBL[].
When the SENSOR SEARCH POINT[ ] LBL[ ] instruction is executed and the joint detection fails,
the following events will occur
• If the search retry function is enabled, the robot will continue searching based on the sensor
schedule data.
• After all search retries have failed, the program will branch to the LBL[j] instruction and
continue execution.
• When the branch to label is executed, the current search routine is disabled as if a SENSOR
SEARCH END has been executed, but no data is calculated.
• If a search fail digital output has been assigned, the output is turned ON. Pressing the RESET key
or issuing a SEARCH START command will cause the search fail digital output to turn OFF.
23–47
23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR MAROC73AR04071E REV A
• Program execution continues at the location where the corresponding LBL[j] exists in the
program.
SENSOR SEARCH END 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.
Search instructions are in the SENSOR instruction set within the INST submenu. The sensor
instructions are as follows:
• SENSOR ON
• SENSOR OFF
• SEARCH START
• SEARCH POINT
• SEARCH END
• OFFSET START
• OFFSET END
To execute SEARCH function, set schedule data properly. Schedule data is set on the sensor schedule
screen. Refer to Section 23.4 for more information.
SENSOR OFFSET START indicates the location in a program where you want to start applying the
offset data calculated from an offset type search routine. This offset is added to all of the taught weld
23–48
MAROC73AR04071E REV A 23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR
points that follow to align them with the found location of the joint. Refer to Section 23.6.4 for more
information on offset type search routine. The position register (PR) is where the offset data is stored.
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 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.
Offset instructions are in the SENSOR instruction set within the INST submenu.
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.
A position type search is used to calculate a real position in space, which is usually the location of an
Arc Start or TRACK SENSOR[i] instruction. In a position type search, the sensor records the joint
location in a position register if detection is successful. The robot can then be instructed to move to
this position register.
Both the position type and offset type searches use the same program instructions. The Search Type
item in the sensor schedule determines which type of search output will be calculated.
A position type search uses only a single search point instruction in the search routine.
Note In position-type compensation, the following positional data is set in the position registers:
23–49
23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR MAROC73AR04071E REV A
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.
An offset type search is used to calculate an incremental displacement of the joint from its original
location. The output of this type of search is a small displacement value (typically 0 to 10 mm in one
or more directions) that is used to offset one or more welding positions on a part.
For example , a 25 mm long weld is to be made that consists of two positions: Arc Start and Arc End.
The sensor is instructed to perform an offset type search at the center of the weld to determine and
correct any lateral shift of the current part relative to the original trained weld path.
Based on the search, the sensor calculates the joint displacement in the y- and z-directions from the
original joint. The robot can then be instructed to use this offset to displace both the Arc Start and Arc
End positions by the offset amount.
Both the position type and offset type searches use the same instructions in the program. If one search
point is programmed, then only the lateral offset and z offset can be applied to the weld path.
If two search points are programmed in the search routine, it is assumed that these positions are on
perpendicular weld paths and that the path shifts in the x, y, and z directions.
The sensor schedule determines which type of search will be calculated. Refer to Section 23.4.2 .
23–50
MAROC73AR04071E REV A 23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR
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.
Instruction Description
J P[1] 50% CNT100
L P[2] 80mm/sec FINE Move to first search position
SENSOR SEARCH START PR[1]
SENSOR SEARCH POINT[3]
J P[3] 40% CNT100
J P[4] 40% CNT100
J P[5] 40% FINE Move to second search position
SENSOR SEARCH POINT[4]
SENSOR SEARCH END
SENSOR OFFSET START PR[1]
L P[6] 100mm/sec FINE
Arc Start[2]L P[8] 25mm/sec CNT100 Weld first path
Arc End[2]J P[9] 40% FINE Reposition for second path
Arc Start[3]L P[10] 25mm/sec CNT100 Weld second path
Arc End[3]
SENSOR OFFSET END
J P[1] 50% FINE
For the two point offset type search, a system variable is provided for search setup to determine how
the two point search calculates the offset of the part plane. This is set at a Controlled start and is in
effect for all two point searches. The values of the variable affect how the offset is calculated.
23–51
23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR MAROC73AR04071E REV A
When $MIG_CALFLG=1 , the z offset is "z" from the second search, and all points on the weld
path will have the same incremental z added. See Figure 23–19 . This assumes the part plane will
always be parallel to the original.
P1 Z2 P2
If $MIG_CALFLG=2 , the z height is calculated as a frame rotation about the first searched path.
$MIG_CALFLG=2 assumes the part plane rotates about the first weld joint. As the second path is
executed, the z height grows uniformly larger. See Figure 23–20 .
P2
P1 Z2
If $MIG_CALFLG=3 , the z height is calculated from the rotation about the first and second paths.
$MIG_CALFLG=3 causes the weld plane to tilt about the trained paths. See Figure 23–21 .
23–52
MAROC73AR04071E REV A 23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR
P1 Z2 P2
Z1
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:
A one point search (position search type) can locate the weld (track) start position by searching for the
weld joint using search parameters in the specified sensor schedule.
23–53
23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR MAROC73AR04071E REV A
In One Position Search - Position Type for Weld Start Position Example , sensor schedule 2 is used
after the robot moves to P[1]. The found location is stored in PR[4], then the robot moves to the
position stored in PR[4]. Figure 23–22 illustrates the program example.
Note For this kind of operation, the search type is set to POSITION in the sensor schedule.
One Position Search - Position Type for Weld Start Position Example
Instruction Description
J P[1] 50% FINE Move to P[1]
SENSOR SEARCH START PR[4] Start Search Routine
SENSOR SEARCH POINT[2] Search joint, use Schedule [2]
SENSOR SEARCH END Stop search routine, calculate pos.PR[4]
L PR[4] 50% FINE
MOVE TO PR[4]
Arc Start [3]
Track SENSOR [2]
L P[2] 35mm/sec FINE
ARC END[3]
TRACK END
Figure 23–22. One Position Search - Position Type for Weld Start Position
PR[2]
Y
X
TCP
23–54
MAROC73AR04071E REV A 23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR
A search routine with one search point (offset type) is used to find a part that has shifted parallel to the
original location in two dimensions (y and z).
The program examples in One Position Search - Position Type for Weld Start Position Example and
Example Program for Offset Type Search with Y Z Output are very similar. However, by changing
the search type in the sensor schedule to OFFSET, the system automatically calculates an offset
instead of a position. The calculated offset can then be applied to many points in the program by using
OFFSET START and OFFSET END instructions.
Note The robot program ( One Position Search - Position Type for Weld Start Position Example , for
example) should be altered to apply an offset PR[4] rather than moving to PR[4]. Example Program
for Offset Type Search with Y Z Output shows the programming for a five-sided part identified in
Figure 23–23 In this example, P[6] - P[7], P[7] - P[8], and P[9] - P[10] can use the offset information.
It is assumed that the part moves only in the y and z directions and does not rotate.
Instruction Description
1: J P[1] 100% CNT100
2: J P[2] 100% FINE
3: SENSOR SEARCH START PR[3] Start search routine
4: J P[3] 40% FINE Move to first search point P[3]
5: SENSOR SEARCH POINT[1] Search joint, schedule [1]
6: SENSOR SEARCH END Stop search routine, calculate offset
7: J P[4] 100% FINE
8: SENSOR Offset START PR[3] Start point for applying offset
9: J P[5] 100% FINE ARC START [1]
10: L P[6] 20mm/sec CNT100
11: L P[7] 20mm/sec CNT100
14: L P[8] 20mm/sec CNT100
15: L P[9] 20mm/sec CNT100
16: L P[10] 20mm/sec FINE ARC END [1]
17: SENSOR Offset END Stop point for MIG EYE offset
18: J P[1] 100% FINE
Note P[1], P[2], and P[4], not shown in Figure 23–23 , are the approach and search points.
23–55
23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR MAROC73AR04071E REV A
Figure 23–23. Welded Part with 2-D Offset (One Search Point)
P[7]
P[6] P[5]
P[10]
.
P[8]
Y
X
P[9]
A search routine with two search points (offset type) is used to find a part that has shifted parallel to
the original location in three dimensions.
Example Program for Offset Type Search with X, Y, Z, Output contains a program example of this
kind of search. Figure 23–24 illustrates the program. For example, by starting with the one-point
search program in Example Program for Offset Type Search with X, Y, Z, Output , one position
(P[11]) and one SENSOR SEARCH POINT[2] is added to the search routine. The system will
automatically calculate the additional offset to develop an x, y, z offset.
Instruction Description
J P[1] 100% CNT100
J P[2] 100% FINE
SENSOR SEARCH START PR[3] Start search routine
J P[3] 40% FINE Move to first search point P[3]
SENSOR SEARCH POINT[1] Search joint, schedule [1]
P[11] 40% FINE Move to second search point P[11]
SENSOR SEARCH POINT[2] * Search joint, schedule[2]
SENSOR SEARCH END Stop search routine, calculate offset
J P[4] 100% FINE
SENSOR Offset START PR[3] Start point for applying offset
23–56
MAROC73AR04071E REV A 23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR
Figure 23–24. Welded Part with X,Y, and Z offsets (Two Search Points)
P[7]
P[6] P[5]
P[10]
.
P[8]
. Y
Lap R X
First Search Scan P[9]
P[4]
TCP Location for search Lap L
Second Search Scan
P[11]
TCP Location for 1st search
Note P[1], P[2], and P[3] are not shown in Figure 23–24 for clarity.
Note For this search to calculate the xyz offset correctly, segment P[8] - P[9] and segment P[9] -
P[10] must be coplaner and perpendicular.
Note The first and second searches can be programmed at any position. However, z will be
determined solely by the second search when $MIG_CALFLG=1 and 2. Refer to the description of
the $MIG_CALFLG system variable in Section 23.6.4 .
You can include the LBL[k] option for sensor searches that require specific actions if the search fails.
The instruction execution is identical with or without the LBL[k] option as long as the search is
successful.
23–57
23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR MAROC73AR04071E REV A
If a detection error occurs during the search (the search is not successful), the following events occur:
• If the Retry Count > 0, the robot will move and a new search will be attempted.
• After all search retries have failed or if a single search fails when Retry Count = 0, the program
will branch to LBL[k] and continue execution.
• The program will not stop with a PAUSE error.
• If the branch to label is executed, the current search routine is disabled as if a SEARCH END
has been executed.
Note In the case of a failed search, the position register of the SEARCH START PR[i] instruction
will still contain its previous value.
• If a search fail digital output has been assigned, the output is turned ON. Pressing the RESET key
or issuing another SEARCH START command will cause the search fail digital output to turn OFF.
Note The taught point for SEARCH must use FINE termination type.
Instruction Description
J P[1] 50% CNT100
J P[2] 50% FINE Move to first search point
SENSOR SEARCH START PR[1] Start search routine
SENSOR SEARCH POINT[3] LBL[1]
SENSOR SEARCH END
JMP LBL[2]
LBL[1] Failed 1st search jumps to here
J P[3] 40% FINE Move to alternate search position
SENSOR SEARCH START PR[1]
SENSOR SEARCH POINT[4] LBL[3] Alternate search
SENSOR SEARCH END (Any other program sequence
LBL[2] could be performed instead of
L PR[1] 100mm/sec FINE another search)
Arc Start[2]
TRACK SENSOR[3]
L P[8] 25mm/sec CNT100
L P[10] 25mm/sec CNT100
Arc End[2]
LBL[3] Failed 2nd search jumps to here
J P[1] 50% FINE
Note Searching occurs at the same location using either position type or offset type searches.
23–58
MAROC73AR04071E REV A 23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR
Steps
1. Jog the robot so that the TCP (weld wire) and the laser scan are both on the joint to be searched.
This will ensure proper alignment to the joint.
Note For a position type search, the tool (torch) angles used for searching must be the same as
the angle desired for welding. Orientation of the last search position is used in the calculated
search position. The data in the position register will be the location of the laser line on the joint
and the torch orientation at the taught point.
2. Jog the robot so that the laser scan is at the desired search location with the TCP slightly
above the joint. This will provide some clearance between the joint and the TCP to allow
part movement.
3. Press F1, POINT.
Note 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.
23–59
23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR MAROC73AR04071E REV A
The example shown in Figure 23–25 depicts the placement of the TCP and the sensor
during teaching. The joint position will be determined by transforming the offset values
provided by the sensor in the sensor frame into WORLD frame values.
Laser Scan
Y
X
TCP
Joint Position
Figure 23–26 shows an example of using two-position type searches to find both ends of a
joint to be welded. The robot is then commanded to weld between these two automatically
taught positions (PR[1] and PR[2]).
23–60
MAROC73AR04071E REV A 23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR
Instruction Description
Search Retry
Search Retry is an automatic recovery feature. In the event that a search fails, the robot will reposition
the sensor to perform another search. The number of retries is controlled by the value of RETRY
COUNT in the sensor schedule. A value of zero indicates that search retry is disabled. When a
search fails, the robot will move along a specified direction by a specified distance. These values are
set in the sensor schedule as RETRY DIRECTION and RETRY DISTANCE. The robot motion is
relative to the sensor frame.
If the number of retries is specified greater than 1 with a maximum of 5, motion will alternate
direction for successive retries.
This process continues altering motion directions and adding to the retry distance until the number of
retries is exceeded, or searching is successful.
23–61
23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR MAROC73AR04071E REV A
Note All SEARCH RETRIES will be performed before a JMP/LBL when the SENSOR SEARCH
PR[ ] LBL[ ] instruction is executed.
23.6.5 Track
This section describes the programming for sensor TRACK function. The TRACK function is used to
follow the seam line while welding.
Track Instruction
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.
Track instructions are in the TRACK instruction set within the INST submenu. The track instructions
are as follows:
• TRACK
• TRACK END
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.
Track programming is used to provide dynamic offsets (while welding), to adjust the robot motion.
This allows the TCP (welding wire) to follow the actual weld joint instead of the programmed weld
joint.
Typically, the tracking function is preceded by a search routine. Welds can also be started without
searching, and then activate the tracking function. This might affect the weld start location.
23–62
MAROC73AR04071E REV A 23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR
Tracking Program Example contains an example of using tracking instructions in a teach pendant
program.
Instruction Description
J P[1] 50% FINE
SENSOR SEARCH START PR[4]
SENSOR SEARCH POINT[2]
SENSOR SEARCH END
L PR[4] 50% FINE
• 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:
23–63
23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR MAROC73AR04071E REV A
— Enough positions must be taught to keep the joint within the scanning range of the servo-robot
sensor as the joint is tracked.
Warning
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.
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, the search actually will locate the joint so that a positioning
move can place the TCP on the weld joint. When you include a search command before a track
instruction, ensure that the weld and laser scan are at the point where the weld will start. See TRACK
Function with Preceding SEARCH Command for a program example.
Instruction Description
J P[1] 30% FINE
SENSOR SEARCH START PR[1] Search routine
SENSOR SEARCH POINT [2]
SENSOR SEARCH End
L PR[1] 30 % FINE Move to found location
ARC START[1]
TRACK SENSOR [2] Track after move to PR[1]
23–64
MAROC73AR04071E REV A 23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR
The second method is to move to a trained position, then start tracking and allow the sensor to track
into the joint. This method uses less cycle time to execute. However, when you use this method, the
Arc Start position is fixed. See Track Function Moving to a Trained Position for a program example.
Instruction Description
J P[1] 30% FINE Move to trained point, start welding, then
L P[2] 25mm/sec FINE track into the joint
ARC START[1]
Track SENSOR [2]
Use this method only when the desired weld start position does not vary from part to part. The first
method, using the sensor search to determine the Arc Start position, is the recommended method.
Note that in both methods, the sensor does not provide any information for the first approximately
50 mm (sensor lead distance) of the weld joint. If tracking the first 50 mm of the joint is critical to
your application, use the example shown in Tracking Example .
Tracking Example
Instruction Description
J P[1] 50% FINE
SENSOR SEARCH START PR[4]
SENSOR SEARCH POINT[2]
SENSOR SEARCH END
TRACK SENSOR[2] Start tracking before moving to Arc Start position
L PR[4] 50% FINE
23–65
23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR MAROC73AR04071E REV A
The tracking schedule number can be modified during tracking by using the TRACK SENSOR
instruction with a different schedule number. See Figure 23–27 .
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
Teach the schedule change point so the laser scan is located at the point you require the schedule
change. The best way to do this is to mark the point where the schedule change should occur, then
single step through your program until the laser scan reaches the point. Next, insert an instruction
(with CNT100) and the TRACK SENSOR[#] instruction into the program.
If you want to have a welding schedule change at the same location as a sensor schedule change, you
must teach two position points. Start by putting a pencil mark at the location on the joint where you
23–66
MAROC73AR04071E REV A 23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR
want the change. Jog the robot so that the laser line is at the marked location. Teach a position and
then a TRACK SENSOR instruction. Jog the robot so the TCP (weld wire) is at the mark and teach a
position with an arc start instruction.
Note An exception to this is the TRACK SENSOR[99] instruction. Since TRACK SENSOR[99]
holds the current offset and does not actually track, the change occurs at the TCP location, similar
to a weld schedule change.
When the tracking is paused by an alarm, the following recovery functions can be used, depending
on the user settings.
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
During the forward and backward motion of the scratch start, the MIG EYE will be scanning, but the
tracking is not executed. Tracking is started after the robot returns to the weld start position.
The scratch start and setup data for scratch start can be enabled in the weld system setup menu.
When the tracking is resumed after a Sensor Error, the robot will recover according to the following
procedure if tracking error recovery is enabled.
1. In case that the robot is jogged after the error is reset, the welding will resume after the robot
moves back to the stop position.
2. The robot will move to the next destination point without tracking. The destination point is
compensated by the offset from the tracking before the alarm occurred.
3. When the robot reaches the next destination point, the alarm "MIGE-055 Track ready for
resume" will occur. The robot will be paused again.
4. When the program is restarted after resetting the error, tracking and welding will resume.
23–67
23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR MAROC73AR04071E REV A
To enable the Tracking Error Recovery, enable the Original Path Resume function in weld system
setup menu, and enable TRACKING ERROR RECOVERY in Sensor system set up screen.
Tracking Error recovery will execute when the following errors occur:
In case that the Sensor Error occurs at last segment in tracking segments, the alarm MIGE-055 does
not occur.
In case that the logic instructions are taught between the Sensor Error line and the next motion
instruction, the alarm MIGE-055 occurs after the logic instructions are executed.
Figure 23–28. Example of How the Sensor Resumes from a Tracking Error
Taught path
Offset
P[1] n n
Move to P[3] + n
X
Robot path
The TRACK SENSOR[99] instruction can be used during a normal tracked path to suspend the
tracking function temporarily (HOLD). This retains the current offset that was in effect prior to the
command execution.
23–68
MAROC73AR04071E REV A 23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR
HOLD
• Tracking is suspended.
• The Sensor offset is recorded. The current offset, in the world coordinate system, will be applied
uniformly to all subsequently taught points until a TRACK or TRACK END instruction is
executed.
• The current weld schedule is maintained.
RESUME
Figure 23–29 shows how the TRACK SENSOR[99] instruction is used to bypass an object.
23–69
23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR MAROC73AR04071E REV A
Taught Path
notch
cutout
x
Weld Path
Figure 23–29 is a plan view of a lap joint with a cutout in the lower plate and a notch in the upper plate.
It is assumed that the notch does not shift along the x direction of the weld path.
Using TRACK SENSOR[99] to Bypass an Object shows the program instructions used to execute the
weld path shown in Figure 23–29 . In this program, the notch around the cutout is not welded, and
welding is suspended across the cutout.
Instruction Description
J P[1] 100% FINE
SENSOR SEARCH START PR[1]
SENSOR SEARCH POINT [1]
SENSOR SEARCH END
L PR[1] 100mm/sec FINE
Arc Start[1]
TRACK SENSOR[1]
L P[2] 25mm/sec CNT100
Arc End[1]
TRACK SENSOR[99]
L P[3] 30mm/sec CNT100
Arc Start [2]
TRACK SENSOR[2]
L P[4] 25mm/sec FINE
Arc End[2]
Track End
23–70
MAROC73AR04071E REV A 23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR
TRACK SENSOR[99] uses bias and offset and the adaptive weld schedule from the TRACK
SENSOR[1] instruction until the TRACK SENSOR[2] instruction is executed. When P[3] is reached,
the tracking resumes with the full information of the schedule 2 data.
The bias and offset values used throughout the TRACK SENSOR[99] instruction are maintained after
P[3] until tracking is re-established. The offset and bias will begin at lead distance of laser line to TCP
after the scheduled change point, then the new bias and offset obtained from the TRACK SENSOR[2]
instruction are used.
Figure 23–30 shows how the TRACK SENSOR[99] instruction is used to weld a notch.
Taught Path
P[4] notch P[5]
P[3] P[6]
P[1] P[2] P[7] P[8]
cutout
Weld Path
Hold Offset/Bias During a Non-tracked Weld shows the program instructions used to execute the
weld path shown in Figure 23–30 .
Instruction
J P[1] 100% FINE
SENSOR SEARCH START PR[1]
SENSOR SEARCH POINT [1]
SENSOR SEARCH END
L PR[1] 100mm/sec FINE
Arc Start[1]
TRACK SENSOR[1]
L P[2] 25mm/sec CNT100
TRACK SENSOR[99]
L P[3] 30mm/sec CNT100
L P[4] 25mm/sec CNT100
L P[5] 25mm/sec CNT100
23–71
23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR MAROC73AR04071E REV A
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.
The tack welding avoid function enables a tack-welded weld joint to be followed without disturbing
the track or stopping the program because of an alarm.
1. If a position far from the actual weld line is detected, the function assumes that the position is
in a tack-welded section and does not use the corresponding data in calculations for tracking
control or adaptive welding control. The weld line is used to judge the tack-welded section and
calculated from the position of the tool tip.
2. Since available data is not detected in the tack-welded section, the tracking data stored earlier is
used to continue the offset in the same direction as before. If the detection of no position or
of a position far from the weld line continues within the tack-welded section, no alarm occurs
as far as the specified tack welding distance is not exceeded.
Adaptive welding control is performed in the tack-welded section as well. The gap data last detected
before the tack-welded section is used.
To use the tack welding avoid function, specify the following items on the schedule screen. For
the setting, refer to Section 23.4.2 .
1. Tack Avoidance
Specify the distance (mm) from the weld line of the detected position which is assumed to be
in a tack-welded section.
3. Tack Length
Specify the maximum length of the tack-welded section in the direction of the weld line. If the
detection of no position or of a position far from the weld line continues, exceeding this length,
an alarm is raised to stop the program as before.
23–72
MAROC73AR04071E REV A 23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR
Check whether the tack-welded section is correctly judged, using the tracking data history screen.
The tracking data history screen shows the sensor detection position in the world coordinate system
and the distance between the sensor detection position and the weld line. The last one hundred data
items are displayed. (The newest data item is given the smallest number.) If a position is judged to be
in the tack-welded section, an asterisk is added after the corresponding distance data.
Seeing the tracking data history, adjust the tack welding judgment distance in the schedule data.
The data is not updated during tracking. If tracking is performed with this screen displayed, display
another screen after the tracking is completed. Then, display this screen again.
Note This function can be used for straight weld lines. IF the weld line is curved or bent into an
angle, this function might not operate correctly.
A range of 40 to 60 mm from the tracking start position must be free from tack welding.
The maximum length of the tack-welded section that can be subjected to this function depends on the
welding speed.
23–73
23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR MAROC73AR04071E REV A
sensor. The RPM feature is used in conjunction with the multi-pass (MP) feature. The MP feature
described in Section 19.3 uses the weld and weave schedules and multi-pass offsets set in the program
header instead of using the global schedules and position registers. The multi-pass feature also
performs adaptive welding using the joint geometry data stored in the RPM buffer.
In this section, the differences in RPM and MP and the required teach pendant programming method
are explained in detail. For a description of the basic functionality of RPM and MP, refer to Chapter
19 ROOT PASS MEMORIZATION AND MULTI-PASS .
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.
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.
RPM records the positional offset and geometry data in a buffer in the controller SRAM memory. This
enables the controller to retain the RPM data in the cases of power cycling or failure. Once-recorded
RPM data remains in the buffer until the same buffer is overwritten. The recording of data starts
simultaneously with motion and tracking. Data for all of the motion paths (segments) between the
TRACK START and TRACK END instructions are stored in the RPM buffer. Starting from the
TRACK START position, the offset and geometry data is recorded when the robot reaches the
specified distance (given by pitch) along the path. Refer to Figure 23–31 .
23–74
MAROC73AR04071E REV A 23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR
P[1] P[2]
Taught weld path
Pitch
RPM Buffer
Ordinarily, modifying RPM system variables is not required. However, your site and specific type of
welding might require some modifications to the $RPM_PG system variable.
RPM provides a means to adjust the pitch and pitch mode of RPM. Refer to Table 23–10 . Use
Procedure 23-13 to set the pitch mode for RPM.
23–75
23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR MAROC73AR04071E REV A
Steps
1. Press MENUS.
2. Select SETUP.
3. Select Sensor Sys. You will see a screen similar to the following.
23–76
MAROC73AR04071E REV A 23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR
The purpose of recording the positional offset and geometry data during root (first pass) is described
in the previous section is to use the data in subsequent passes in multi-pass welding. Multi-pass
welding is used in applications where large welds are required. The large welds are created by
layering and offsetting smaller welds. The multi-pass functionality described in Section 19.3 is
enhanced to use the data in the program header. The improvements to the multi-pass functionality
are described in this section.
Teaching Multi-Pass
To teach the instructions in a program, press [INST] and select Track/Offset to see the MP instructions.
As described in Section 19.3 , the PR[] allows you to offset the entire weld and change tool direction.
The RPM[] allows you to specify the RPM buffer to use.
23–77
23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR MAROC73AR04071E REV A
In order to use the multi-pass offset in the program header, you must use PR[99]. When a MP
OFFSET instruction sees PR[99], it looks at the program header for offset data and ignores the actual
position register. The actual data in PR[99], if any, is not used at all. Refer to Procedure 23-10 .
Similar to MP OFFSET PR[99] RPM[...], you must use Arc Start [99] and Weave [99] in order to
use the weld and weave schedules specified in the program header. Mult-pass offsets can be used
with and without the RPM feature. If you do not want to use the RPM data and want to just apply the
multi-pass offsets, use MP OFFSET PR[99] RPM[99].
The MP OFFSET instructions also perform adaptive welding, as described in Section 19.3 ,
Multi-Pass.
23.7.3 Programming
In order to perform multi-pass adaptive welding using the enhanced MP and RPM instructions and
the data in the program header instead of the global schedules, you must adhere to the programming
method described in this section. This programming method is intended to reduce the maintenance
burden on the progammer and to improve the ease of programming.
In complex parts that require multiple large welds on different joint types, it is required to switch from
weld to weld between passes. This allows for cooling of welds between passes, minimizes thermal
distortion, and increases overall productivity.
For multi-pass welding, you must use one teach pendant program per weld. The nominal weld and
weave schedules and multi-pass offsets for all passes of the weld must be input in the program header.
Refer to Procedure 23-10 .
You must create a top level program that CALLs the weld program to weld a pass. The calling
program must specify as parameters the pass number to be welded and the direction of the pass. For
example, see the complex part shown in Figure 23–32 .
23–78
MAROC73AR04071E REV A 23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR
Weld 02
Weld 03
Weld 01
For the purpose of explanation, assume that there are three joints, a fillet, a V-groove, and a lap joint
to be welded on the part at the locations shown, all of which require multi-pass welding. Before
programming, you must determine the number of passes for each of these welds and the sequence in
which you want to weld these joints. Then create a part program as shown in Figure 23–33 .
23–79
23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR MAROC73AR04071E REV A
Direction
PART.TP 0: Normal
1: CALL WELD01(1,0) 1: Reverse
2: CALL WELD02(1,0)
3: CALL WELD03(1,0)
4: CALL WELD01(2,1)
5: CALL WELD02(2,1)
6: CALL WELD03(2,1)
7: CALL WELD01(3,0)
8: CALL WELD02(3,0)
9: CALL WELD03(3,0)
.
.
In this example, the part program CALLs the weld teach pendant program WELD01.TP and passes
two parameters, the pass number and direction. You can change the sequence by editing the teach
pendant program. The pass number must be within the number of passes defined for the corresponding
weld, as set in the WELD.TP program header. The direction can be either 0 or 1, 0 meaning normal
direction and 1 meaning the reverse direction. The root pass must always be in the normal direction
and the subsequent passes can be either in the normal or reverse directions.
An example of the WELD.TP program is shown in WELD.TP . All of the teach pendant instructions
and positional data, as well as the process data, for performing all of the passes are contained within
this teach pendant program.
Note R[1] is the pass number. R[2] is the direction. If R[2] = 0, direction is forward. If R[2] = 1,
direction is backward.
WELD.TP
1: R[1]=AR[1]
2: R[2]=AR[2]
3: IF R[2]=1, JMP LBL[3]
4:
5: IF R[1]>1, JMP LBL[2]
6:
7: SENSOR SEARCH START PR[3]
8: SENSOR SEARCH POINT[3]
23–80
MAROC73AR04071E REV A 23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR
Note the use of registers and JMP LBL instructions to jump to the proper section of the program
based on the pass number and direction passed in by the caller. The program shown in WELD.TP
is divided into three parts, one for the root pass, one for all other normal passes, and one for all
of the reverse passes.
23–81
23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR MAROC73AR04071E REV A
For the root pass, the SEARCH feature can be used to determine the Arc Start point. Then a Track
instruction is used with RPM to track the joint and also to perform adaptive welding during the root
pass and the offset and geometry data is recorded in the RPM buffer for future use. You must use Arc
Start [99] and WELD SPEED as shown in the example in order to use the data in the program header.
When Arc Start [99] is executed, the weld schedule data that corresponds to the pass being welded is
obtained from the program header and is input to the welding power supply. This also allows the use
of a run-in schedule defined for the pass in the program header.
A similar Arc End [99] must be used to use the crater fill and burnback schedules defined in the
program header. Weave Sine [99] uses the weave schedule data defined in the program header.
Note the END instruction on line 18, which takes the program flow out of WELD01.TP and back to
PART.TP.
For all other passes, when the PART.TP program calls the WELD01.TP program, if the pass is in
the normal direction, program flow jumps to LBL[2] on line 20 and returns back to PART.TP line
28. If the pass direction is reverse, lines 31 to 40 get executed. The MP OFFSET PR[99] RPM[...]
instruction is used in all non-root pases to get the offsets from the program header, replay the offset
data in the RPM buffer to tracking, and use the geometry data for adaptive welding. When position
registers are used to store the Arc Start position as in this example, you will have to use the LOCK
and UNLOCK PREG instructions.
During the root pass, the joint geometry data obtained from the servo robot sensor is input to the karel
program which must determine the new weld and weave parameters and write them to appropriate
system variables. The adaptive software on the controller reads the system variables and applies
the changes to the weld power supply and robot motion to adapt the weld and weave parameters
respectively. In case of multi-pass welding, during the root pass, the geometry data is stored in the
specified RPM buffer. During subsequent passes the data from the RPM buffer is input to the KAREL
program which again determines the required changes to weld and weave schedules.
The input to and output from the KAREL program is handled via system variables as shown in
the following diagram.
23–82
MAROC73AR04071E REV A 23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR
$SRAD_IN.
$RDY_FLAG KAREL TASK
$ SEG_ID
$DISTANCE PROGRAM adtask $SRAD_OUT.
$GAP VAR $RDY_FLAG
$MISMATCH BEGIN
$SEG_ID
WHILE TRUE DO
$AREA $DISTANCE
WAIT FOR $SRAD_IN.$RDY_FLAG
$S1 prog_name =$AD_WELD.$ALGO_NAME $WD_SCH
$S2 CALL_PROG(prog_name, prog_index) $WV_SCH
$S3 $ SR_AD_IN.$RDY_FLAG = FALSE
$S4 ENDWHILE
$S5 END ad_task
The KAREL program adtask is always running on the controller. As shown in the above diagram,
when $SRAD_IN.$RDY_FLAG is true , the karel task calls the adaptive algorithm program selected
in the program header. The name of the algorithm file is copied to $AD_WELD.$ALGO_NAME
when the PART.TP program calls the WELD.TP program. In addition, all the data in the program
header is copied to the following system variables. These variables can accessed and used by the
adaptive algorithm. Table 23–11 lists and describes the Adaptive Welding System variables.
23–83
23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR MAROC73AR04071E REV A
$AD_CONST.$C1.$VALUE The global constant values can be accessed from the following
$AD_CONST.$C2.$VALUE system variables.
$AD_CONST.$C3.$VALUE
The system variables described in Table 23–11 can be used in the adaptive algorithm in conjunction
with the sensor data obtained from $SRAD_IN to calculate the new weld and weave parameters.
In Example Adaptive Welding Algorithm , a template algorithm called buttalgo.kl , for butt joint is
shown. The program provides a simple example of an adaptive algorithm. The buttalgo.kl program
will copy the listed system variables to several local variables at the beginning. In the adaptive
23–84
MAROC73AR04071E REV A 23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR
algorithm section of the program , the program uses only gap among the sensor data and adapts only
travel speed among the weld parameters and adapts all the weave parameters - amplitude, frequency,
right dwell and left dwell. Notice that different pass specific constants (cp1 and cp2) are used in
different ranges of the gap variable for adapting weave amplitude. The robot speed is changed linearly
with the gap, assuming the nominal speed corresponds to the nominal gap. The weave frequency is
changes as the speed changes. The dwell times are changed with the speed as well. At the bottom of
the program the weld and weave parameters calculated are set in the system variable $SRAD_OUT.
The KAREL program shown in Example Adaptive Welding Algorithm serves only as an example and
you should develop and use an adaptive algorithm that is suitable to your process. The program should
follow the structure shown in the example and must be error free for successful adaptive welding.
--------------------------------------------------------------------
PROGRAM buttalgo
--------------------------------------------------------------------
%COMMENT=’Algorithm for Butt Joints’
%SYSTEM
%NOABORT = ERROR + COMMAND
%NOPAUSE = ERROR + COMMAND + TPENABLE
%NOBUSYLAMP
%NOLOCKGROUP
%ENVIRONMENT srdef
%ENVIRONMENT madef
%INCLUDE klevccdf
VAR
-- measured variables (sensor output)
gap: REAL
-- weld parameters (from program header)
nom_speed, min_speed, max_speed: REAL
-- weave parameters (from program header)
-- nominal values may change for each pass
-- min and max remain the same for all passes
nom_ampl, min_ampl, max_ampl : REAL
nom_freq, min_freq, max_freq : REAL
nom_ldwl, min_ldwl, max_ldwl : REAL
nom_rdwl, min_rdwl, max_rdwl : REAL
-- joint parameters (from program header)
nom_gap, min_gap, max_gap: REAL
-- constants (from program header)
-- c1, c2, c3 remain the same for all passes
-- cp1, cp2 and cp3 may change for each pass
c1, c2, c3 : REAL
cp1, cp2, cp3 : REAL
-- Output variables
speed : REAL
23–85
23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR MAROC73AR04071E REV A
ampl : REAL
freq : REAL
ldwl : REAL
rdwl : REAL
-- other variables
------------------------------------------
BEGIN -- Begin buttalgo
-- This routine executes the adaptive algorithm
-- Read $SRAD_IN and fill out $SRAD_OUT
-- Header data can be accessed from $MP_WELD, $MP_PASS
-- $AD_WELD, $AD_JOINT, $AD_CONST and $AD_PASS
-- read the header data from system variables
nom_speed = $MP_PASS.$WELD_SCH.$WSPEED
min_speed = $AD_WELD.$MIN_WD_SCH.$WSPEED
max_speed = $AD_WELD.$MAX_WD_SCH.$WSPEED
nom_ampl = $MP_PASS.$WV_SCH.$AMPLITUDE
min_ampl = $AD_WELD.$MIN_WV_SCH.$AMPLITUDE
max_ampl = $AD_WELD.$MAX_WV_SCH.$AMPLITUDE
nom_freq = $MP_PASS.$WV_SCH.$FREQUENCY
min_freq = $AD_WELD.$MIN_WV_SCH.$FREQUENCY
max_freq = $AD_WELD.$MAX_WV_SCH.$FREQUENCY
nom_ldwl = $MP_PASS.$WV_SCH.$DWELL_LEFT
min_ldwl = $AD_WELD.$MIN_WV_SCH.$DWELL_LEFT
max_ldwl = $AD_WELD.$MAX_WV_SCH.$DWELL_LEFT
nom_rdwl = $MP_PASS.$WV_SCH.$DWELL_RIGHT
min_rdwl = $AD_WELD.$MIN_WV_SCH.$DWELL_RIGHT
max_rdwl = $AD_WELD.$MAX_WV_SCH.$DWELL_RIGHT
nom_gap = $AD_JOINT.$GAP.$NOMINAL
min_gap = $AD_JOINT.$GAP.$MIN_VAL
max_gap = $AD_JOINT.$GAP.$MAX_VAL
c1 = $AD_CONST.$C1.$VALUE
c2 = $AD_CONST.$C2.$VALUE
c3 = $AD_CONST.$C3.$VALUE
cp1 = $AD_PASS.$CP1
cp2 = $AD_PASS.$CP2
cp3 = $AD_PASS.$CP2
-- read sensor input from $SRAD_IN
gap = $SRAD_IN.$GAP
-- set the other variables
-- adaptive algorithm
IF ( gap < min_gap ) THEN
ampl = min_ampl -- set wv amplitude to minimum
freq = max_freq -- set wv frequency to maximum
speed = max_speed -- set weld speed to maximum
ENDIF
IF ((gap >= min_gap) AND (gap < nom_gap)) THEN
-- set the weave amplitude to half the gap
23–86
MAROC73AR04071E REV A 23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR
23–87
23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR MAROC73AR04071E REV A
In addition to the SEARCH and TRACK functionality described in this chapter, the Servo-Robot
option provides additional software in the form of the KAREL programs listed above, for different
applications. The data for each application should be set in registers. All five application programs
are loaded automatically with the Servo-Robot option. Each application requires a continuous block
of seven registers and a continuous block of six position registers.
23.9.1 Setup
The following setup is necessary for using the application instruction. Set the first register’s number
to be used in register 32 (R[32]). Seven consecutive registers starting from the number in register 32
are used. Data should be set for each application in these registers.
• Content of register
If register 32 has a value of N, the following registers (R[N] ... R[N+6]) have special meaning for
Sensor applications.
R[N+1] = 1 -Enables a test message display on the user screen that describes how each register
R[N] to R[N+6] are being used. R[N+1] = 0 - Disable the display.
R[N+2] - This register contains the index of position register for the calculated data. An example
of this would be if R[N+2] = M , then:
PR[M] Holds calculated data for the offsets. PR[M+1] Holds searched data. PR[M+2] - Holds
searched data PR[M+3] - Holds searched data PR[M+4] - Holds searched data
* The number of the position registers PR[M+1]... used for each application is different.
Note The position registers PR[M+1]... are used in the search start instructions in your teach
pendant program.
23–88
MAROC73AR04071E REV A 23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR
23.9.2 MIG_CRS
In MIG_CRS instruction, five position registers are used, including the position register to output
calculated data. This application calculates the intersection of two straight lines and then saves
the calculated position in a position register. Two points on each straight line will be searched and
recorded in the position register. See Figure 23–35 .
JOINT 30%
5 JMP/LBL
Searched Searched 6 CALL
point 1 point 2 Calculated
point 7 Arc
8 –––next page–––
Searched
point 3
KAREL list JOINT 30%
Searched 1 MIG_CIRCLE 5 MIG_VECTOR
point 4 2 MIG_CRS 6 MIG_VECTOR
3 MIG_CRS2 7
4 MIG_FRAME 8
Sample3
Ex. If R[N+2] = 1
— PR[1] : Calculated data
— PR[2] : Searched point 1
— PR[3] : Searched point 2
23–89
23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR MAROC73AR04071E REV A
Example Program
1: J P[1] 100% Fine
2: J P[2] 100% Fine
3: SENSOR SEARCH START PR[2]
4: SENSOR SEARCH POINT [1]
5: SENSOR SEARCH END
6: J P[3] 100% Fine
7: SENSOR SEARCH START PR[3]
8: SENSOR SEARCH POINT [1]
9: SENSOR SEARCH END
10: J P[4] 100% Fine
11: SENSOR SEARCH START PR[4]
12: SENSOR SEARCH POINT [1]
13: SENSOR SEARCH END
14: J P[5] 100% Fine
15: SENSOR SEARCH START PR[5]
16: SENSOR SEARCH POINT [1]
17: SENSOR SEARCH END
18: R[32] = 11
19: R[11] = 1
20: R[12] = 0
21: R[13] = 1
22: R[14] = 0
23: R[15] = 1
24: CALL MIG_CRS
25: IF R[14] = 0 JUMP LBL[99]
26: J PR[1] 100% Fine
27: LBL[99]
23–90
MAROC73AR04071E REV A 23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR
23.9.3 MIG_CRS2
In MIG_CRS2 instruction, four position registers are used, including the position register to output
calculated data. This application calculates the projection of a point on a straight line. The first
searches made by this application will determine the coordinates of a straight line and based on that,
MIG_CRS2 will project a third search point on the straight line, and calculate the coordinates of
that point. See Figure 23–36 .
JOINT 30%
5 JMP/LBL
6 CALL
Searched point 3 7 Arc
8 –––next page–––
Searched
point 2
Ex. If R[N+2] = 1
— PR[1] : Calculated data
— PR[2] : Searched point 1
— PR[3] : Searched point 2
— PR[4] : Searched point 3
• Set the registers and the position registers according to Section 23.9.1
• MIG_CRS2 also uses R[N=4] to determine the posture of the calculated point.
23–91
23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR MAROC73AR04071E REV A
Example Program
1: J P[1] 100% Fine
2: J P[2] 100% Fine
3: SENSOR SEARCH START PR[2]
4: SENSOR SEARCH POINT [1]
5: SENSOR SEARCH END
6: J P[3] 100% Fine
7: SENSOR SEARCH START PR[3]
8: SENSOR SEARCH POINT [1]
9: SENSOR SEARCH END
10: J P[4] 100% Fine
11: SENSOR SEARCH START PR[4]
12: SENSOR SEARCH POINT [1]
13: SENSOR SEARCH END
14: R[32] = 11
15: R[11] = 1
16: R[12] = 0
17: R[13] = 1
18: R[14] = 0
19: R[15] = 1
20: CALL MIG_CRS2
21: IF R[14] = 0 JUMP LBL[99]
22: J PR[1] 100% Fine
23: LBL[99]
23.9.4 MIG_VECTOR
In MIG_VECTOR instruction, three position registers are used, including the position register to
output calculated data. This instruction calculates a point at a specified distance along a searched
direction. The first two search points give the direction, and R[n+4 ] gives the distance from the first
search point along the direction of the search. See Figure 23–37 .
23–92
MAROC73AR04071E REV A 23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR
JOINT 30%
5 JMP/LBL
6 CALL
Calculatedpoint
7 Arc
Searched 8 –––next page–––
point 2
Ex. If R[N+2] = 1
— Position register [1] : Calculated data
— Position register [2] : Searched point 1
— Position register [3] : Searched point 2
• Set the registers and the position registers according to Section 23.9.1
R[N+4] = 50 : The distance from the first searched point to the calculated point. (unit : mm)
Example Program
1: J P[1] 100% Fine
2: J P[2] 100% Fine
3: SENSOR SEARCH START PR[2]
4: SENSOR SEARCH POINT [1]
5: SENSOR SEARCH END
6: J P[3] 100% Fine
7: SENSOR SEARCH START PR[3]
8: SENSOR SEARCH POINT [1]
9: SENSOR SEARCH END
10: R[32] = 11
11: R[11] = 1
23–93
23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR MAROC73AR04071E REV A
12: R[12] = 0
13: R[13] = 1
14: R[14] = 0
15: R[15] = 50
16: CALL MIG_VECTOR
17: IF R[14] = 0 JUMP LBL[99]
18: J PR[1] 100% Fine
19: LBL[99]
23.9.5 MIG_CIRCLE
In MIG_CIRCLE instruction, five position registers are used, including the position register to output
calculated data. This instruction calculates the center of the circle with three of four searched points
on the circle arc. See Figure 23–38 .
JOINT 30%
5 JMP/LBL
Searched Searched 6 CALL
point 1 point 2 7 Arc
8 –––next page–––
23–94
MAROC73AR04071E REV A 23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR
Sample Program
Example Program
1: J P[1] 100% Fine
2: J P[2] 100% Fine
3: SENSOR SEARCH START PR[2]
4: SENSOR SEARCH POINT [1]
5: SENSOR SEARCH END
6: J P[3] 100% Fine
7: SENSOR SEARCH START PR[3]
8: SENSOR SEARCH POINT [1]
9: SENSOR SEARCH END
10: J P[4] 100% Fine
11: SENSOR SEARCH START PR[4]
12: SENSOR SEARCH POINT [1]
13: SENSOR SEARCH END
14: J P[5] 100% Fine
15: SENSOR SEARCH START PR[5]
16: SENSOR SEARCH POINT [1]
17: SENSOR SEARCH END
18: R[32] = 11
19: R[11] = 1
20: R[12] = 0
21: R[13] = 1
22: R[14] = 0
23: R[15] = 2
24: R[16] = 5
25: CALL MIG_CIRCLE
26: IF R[14] = 0 JUMP LBL[99]
27: J PR[1] 100% Fine
28: LBL[99]
23–95
23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR MAROC73AR04071E REV A
23.9.6 MIG_FRAME
In MIG_FRAME instruction, five or six position registers are used, including the position register
to output calculated data. This application calculates a coordinate frame from three or four search
points. See Figure 23–39 .
• Set registers R[N], R[N+1], R[N+2], and R[N+3] as described in Section 23.9.1 .
— PR[M] : Calculated data
— PR[M+1] : Search point 1
— PR[M+2] : Search point 2
— PR[M+3] : Search point 3
— PR[M+4] : Search point 4 (when R[N+4] =2. See below.)
— PR[M+5] : Nominal value storage
• Register R[N+4] is used to control the method applied to calculating the frame.
— When R[N+4]=1, the Frame is calculated from three searches using the KAREL FRAME
instruction.When R[N+4]=2, the Frame is calculated from four searches using the MIG_CRS
method. Refer to Section 23.9.2 for search position requirements. When R[N+4]=3, the
Frame is calculated from three searches using the MIG_CRS2 method. Refer to Section
23.9.3 for search position requirements.
• Register R[N+5] contains the calculation error (in minutes).
• Register R[N+6] indicates if a nominal frame value is to be stored in Position Register PR[M+5].
When register R[N] to R[N+5] have been set, register R[N+6] controls when a nominal frame value
is set into PR[M+5]. When MIG_FRAME is successfully executed, and R[N+6]=1, the currently
23–96
MAROC73AR04071E REV A 23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR
calculated frame is recorded in PR[M+5] as a nominal frame. The calculated output in PR[M] can
then be applied to a User frame.
When MIG_FRAME is successfully executed after this, and R[N+6]=0, the value of the current
frame is not recorded in PR[M+5].
The program that the user creates will be taught in the User frame defined by MIG_FRAME
application. Positions for the robot program get trained with respect to the nominal user frame.
In Example Program with MIG_FRAME , this application is used to update the user frame that is
defined by features of the part being welded. The first time this code is executed, line 26 should have
"R[17]=1" set to the nominal frame in PR[6]. Line 27 calculates a frame. In line 29, the value of R[1]
is copied to User Frame two, and in line 29 the default Uframe is set to User Frame two.
When the move to P[6] is executed, the position will be shifted by the difference between the nominal
frame and the current frame so that the TCP is correctly positioned on the current part.
Example Program
1: UF = 1
2: J P[1] 100% Fine
3: J P[2] 100% Fine
4: SENSOR SEARCH START PR[2]
5: SENSOR SEARCH POINT [1]
6: SENSOR SEARCH END
7: J P[3] 100% Fine
8: SENSOR SEARCH START PR[3]
9: SENSOR SEARCH POINT [1]
10: SENSOR SEARCH END
11: J P[4] 100% Fine
12: SENSOR SEARCH START PR[4]
13: SENSOR SEARCH POINT [1]
14: SENSOR SEARCH END
15: J P[5] 100% Fine
16: SENSOR SEARCH START PR[5]
17: SENSOR SEARCH POINT [1]
18: SENSOR SEARCH END
19: R[32] = 11
20: R[11] = 1
21: R[12] = 0
22: R[13] = 1
23: R[14] = 0
24: R[15] = 2
25: R[16] = 30
23–97
23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR MAROC73AR04071E REV A
26: R[17] = 0
27: CALL MIG_FRAME
28: IF R[14] = 0 JUMP LBL[99]
29: UFRAME[2] = PR[1]
30: UFRAME_NUM = 2
31: J P[6] 100% Fine
32: LBL[99]
Four points 1, 2, 3, and 4 are searched for by using MIG_CROSS and MIG_VECTOR. Then, welding
of a desired length can be performed from point A toward point B. See Figure 23–40 .
In the sample program shown in MIG_CROSS and MIG_VECTOR Sample Program , calculated
positions A and B are indicated in lines 38 and 39.
Example Program
1: J P[1] 100% FINE
2: J P[2] 100% FINE
3: SENSOR SEARCH START PR[2]
4: SENSOR SEARCH POINT [1] LBL[99]
5: SENSOR SEARCH END
6: J P[3] 100% FINE
23–98
MAROC73AR04071E REV A 23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR
Four points 1, 2, 3, and 4 are searched for by using MIG_CROSS and MIG_FRAME. According to
the data, a new coordinate system is specified. Then, welding can be performed along preset segments
connecting points A, B, C, D, and E. See Figure 23–41 .
23–99
23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR MAROC73AR04071E REV A
In the sample program shown in MIG_CROSS and MIG_FRAME Sample Program through Figure
23–43 , points A to E are specified on lines 31 to 35.
Example Program
1: UFRAME_NUM = 1
2: J P[1] 100% FINE
3: J P[2] 100% FINE
4: SENSOR SEARCH START PR[2]
5: SENSOR SEARCH POINT [1] LBL[99]
6: SENSOR SEARCH END
7: J P[3] 100% FINE
8: SENSOR SEARCH START PR[3]
9: SENSOR SEARCH POINT [2] LBL[99]
10: SENSOR SEARCH END
11: J P[4] 100% FINE
12: SENSOR SEARCH START PR[4]
13: SENSOR SEARCH POINT [3] LBL[99]
14: SENSOR SEARCH END
15: J P[5] 100% FINE
16: SENSOR SEARCH START PR[5]
17: SENSOR SEARCH POINT [4] LBL[99]
18: SENSOR SEARCH END
19: R[32] = 11
20: R[11] = 1
21: R[12] = 0
22: R[13] = 1
23: R[14] = 0
24: R[15] = 2
25: R[16] = 30
26: R[17] = 0
27: CALL MIG_FRAME
23–100
MAROC73AR04071E REV A 23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR
WELD01.TP
Example Program
1: R[1]=AR[1]
2: R[2]=AR[2]
3: IF R[2]=1,JMP LBL[3]
4:
5: IF R[1]>1,JMP LBL[2]
6: ! ROOT PASS
7: SENSOR SEARCH START PR[3]
8: SENSOR SEARCH POINT[3]
9: SENSOR SEARCH END
10:
11: Track SENSOR[3] RPM[3]
12:L PR[3] 20mm/sec FINE
: Arc Start[99]
13: Weave Sine[99]
14:L P[4] WELD_SPEED FINE
: Arc End[99]
15: Weave End
16: Track End
17:J P[5] 10% FINE
18: END
19:
20: LBL[2:OTHER PASSES]
21: MP Offset PR[99] RPM[3]
22:J PR[3] 10% FINE
: Arc Start[99]
23: Weave Sine[99]
24:L P[4] WELD_SPEED FINE
23–101
23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR MAROC73AR04071E REV A
: Arc End[99]
25: Weave End
26: MP Offset End
27:J P[5] 10% FINE
28: END
29:
30:
31: LBL[3:REVERSE PASSES]
32: LOCK PREG
33:J P[5] 10% FINE
34: MP Offset PR[99] RPM[3]
35:L P[4] 200mm/sec FINE
: Arc Start[99]
36: Weave Sine[99]
37:L PR[3] WELD_SPEED FINE
: Arc End[99]
38: MP Offset End
39:J P[1] 10% FINE
40: UNLOCK PREG
[END]
Direction
PART.TP 0: Normal
1: CALL WELD01(1,0) 1: Reverse
2: CALL WELD02(1,0)
3: CALL WELD03(1,0)
4: CALL WELD01(2,1)
5: CALL WELD02(2,1)
6: CALL WELD03(2,1)
7: CALL WELD01(3,0)
8: CALL WELD02(3,0)
9: CALL WELD03(3,0)
23–102
MAROC73AR04071E REV A 23. ADAPTIVE WELDING WITH SERVO-ROBOT SENSOR
Weld 03
Weld 01
Weld 02
23–103