Documente Academic
Documente Profesional
Documente Cultură
Table of Contents
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
1.7
1.7.1
1.7.2
1.7.3
1.8
1.9
1.9.1
1.9.2
1.9.3
1.9.4
1.9.5
1.9.6
1.9.7
1-2
A-83971
1.1
OVERVIEW
The Adaptive Welding feature allows you to adjust the weld process to compensate for the
variation in the weld joint geometry. The adaptive welding feature works in conjunction with
the seam tracking feature, which adjusts the path of the TCP to compensate for variations in
joint location. Adaptive Welding uses a Servo-Robot vision sensor to scan the weld joint as it
is being welded. The data provided by the Servo-Robot sensor can be used by the Adaptive
Welding feature to automatically adjust weld and weave parameters to optimize the quality
of the weld.
Note the performance of the Servo Robot Sensor Interface option is highly dependent on the
application requirements, weld process operating conditions, and weld joint design. As such,
FANUC Robotics always verifies the functionality of this feature for each specific
application. Contact your local FANUC representative for an evaluation of your welding
application prior to ordering or implementing the Servo Robot Sensor Interface.
When you use Adaptive Welding with the Multi-Pass feature, the joint location and geometry
data obtained during the Root Pass is memorized with the Root Pass Memorization feature
(RPM) and later re-used for tracking and adaptive welding on the subsequent passes with the
Multi-Pass (MP) feature.
An Adaptive Welding system consists of the following hardware and software components:
Install and configure the Servo-Robot vision sensor using the WinUser software.
Install the Servo-Robot software option on your controller
Define a sensor frame using the ten points method.
Write and execute a program that contains Multi-Pass and Adaptive Welding data and
track/offset instructions.
1-3
A-83971
1.1.1
1-4
Tracking motion with integral extended axes beyond one (a seventh axis such as an
integrated rail) is not qualified.
The Tack Avoidance function is not supported.
1.2
INSTALLING THE SERVO-ROBOT SENSOR AND
SOFTWARE
Before you can use the sensor with your controller, you need to install the Servo-Robot
Sensor. After you have installed the servo-robot sensor on your robot, you need to:
Refer to the Servo-Robot Installation and Operation Manual for information about how to
set up the Servo-Robot sensor. The VISUS Image Processing Software Manual contains
definitions of joint types supported by the Servo-Robot sensors.
Note Adaptive Welding supports only the joints supported by the Servo-Robot sensor. In
order to use Adaptive Welding effectively, you need to know the joint definitions and
measurements provided by the Servo-Robot sensor for each joint type. You need to configure
the Servo-Robot sensor's joint parameters on the Servo-Robot sensor controller with the
WinUser software.
Refer to the WinUser software documentation to set up the Servo-Robot sensor interface
with your PC.
1.2.1
Additional Requirements
In addition to the setup requirements described in the Servo-Robot Sensor Installation and
Operation manual, you need to install the following components on your controller:
1.2.2
E-Stop Connection
Connect the Servo Robot control to the robot controller using the wiring diagram shown in
Figure 1-2 .
1-5
A-83971
The EMGIN1 and EMGIN2 connections are located on the PCB on the door inside the on the
back of the operator panel. There will be a jumper installed from the factory that will need to
be removed for the circuit to work correctly.
1.2.3
Your installation should conform to safety requirements of the site, acceptable standards, and
legal requirements of appropriate governing bodies where the system is to be installed.
1-6
1.2.4
Communication Connection
1.2.4.1
RS-232C Communication
Connect the communications cable to the Servo-Robot controller box from the robot
controller using the wiring diagram shown in Figure 1-4.
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 1-1 and Procedure 1-2 below to configure and verify the controller to sensor
controller communication.
Procedure 1-1 Sensor Port Configuration
Conditions
Steps
1.
Press MENUS.
2.
Select SETUP.
3.
4.
5.
6.
7.
1.2.4.2
A-83971
Ethernet Communication
You must set up TCP/IP before you can use Internet Protocol Applications. Setup is required
in two areas:
Hardware - includes port initialization and cable and connector requirements
Software - includes host communication device definition
The R30iA controller supports two 10 Base-T or 100 Base-TX interfaces through the RJ45
Ethernet connectors. Connect your Sensor device to one of this port.
This port then should only be connected to the sensor!
Setup Software
1. Press MENUS.
2. Select SETUP.
3. Press F1, [TYPE].
4. Select Host Comm. You will see a screen similar to the following.
1-8
Internet Address
192.168.0.100
SR
2 ********** ************************
1-9
1.2.5
A-83971
Validating Communications
Steps
1.
1: SENSOR ON [1]
2: WAIT 5sec
3: SENSOR OFF[END]
2.
The SENSOR ON and SENSOR OFF instructions are in the SENSOR category of the
[INST] sub-menu.
If there is a bad RX line at the robot controller, the sensor will turn on, but the program
will pause with the following error:
MIGE-017 Sensor on/off failed
Cause code:
MIGE-115 Comm. Error (H:Time out)
1-10
1.3
SENSOR SETUP
1.3.1
Overview
In order for Adaptive Welding to adjust the path of the robot's TCP to track the weld joint,
the location of the joint relative to the coordinates of the TCP must be calculated by Adaptive
Welding. This is why it is important to accurately define the sensor frame, which is the
physical location of the Servo-Robot sensor relative to the robot's faceplate.
This section describes how to set up the sensor frame, which must be done before you use the
Servo-Robot vision sensor on your controller.
Prior to setting up the sensor frame, you must have defined an accurate tool frame. If you
have not calculated a tool frame, refer to Section 1.3.4 for information on setting up a tool
frame. Refer to Section 1.3.7 to set up the sensor frame with the Ten Point Teaching Method.
If you have already calculated a tool frame and you know the X, Y, Z, W, P and R values of
the sensor frame, you can enter the coordinates for it with the direct entry method, which is
shown in Section 1.3.6.
1.3.2
1.3.3
1.
Press MENUS.
2.
Select SYSTEM.
3.
4.
Select Variables.
5.
6.
Press Enter.
7.
8.
1-11
1.3.4
A-83971
1.3.5
1.3.6
ITEM
DESCRIPTION
Frame
X, Y, Z, W, P, R
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.
4.
Select Sensor Frames. You will see a screen similar to the following
SETUP Sensor Frame
Sensor Frame Setup/Direct Entry
1
2
3
4
5
6
1-12
X:
Y:
Z:
W:
P:
R:
0.000
0.000
0.000
0.000
0.000
0.000
5.
If the Direct Entry screen is not displayed, press F2, METHOD, and select 2, Direct Entry,
as shown in the screen below.
1 TEN Point
2 Direct Entry
6.
Move the cursor to each value of the Sensor Frame, and enter the information with the teach
pendant, as shown in the following screen.
SETUP Sensor Frame
Sensor Frame Setup/Direct Entry
1
2
3
4
5
6
1.3.7
X:
Y:
Z:
W:
P:
R:
202.321
1042.
0.000
0.000
0.000
0.000
Setting Up the Sensor Frame Using the Ten Point Teaching Method
The Ten Point Method is the recommended method to set the camera frame. It uses a known
reference joint with ten taught points. The 1st and 2nd TCP reference points establish a
vector of known length on the reference/calibration joint. The robot moves between the 3rd
through 10th points with different xyz offsets and orientations around the TCP . At each
position the camera looks at the joint. When all of the position moves have been completed
the new camera frame and origin offsets are calculated.
The reference joint must be made in a straight line. A sharp, clean edged lap joint with no
gap is recommended. This calibration joint should not be part of the work piece. It may,
however, be incorporated as part of the fixture or robot cell as a permanent reference.
Two additional programs are called by the calibration routine, LASON.TP, shown in Figure
1-5, and SEARCH.TP, shown in Figure 1-6.
LASON
1/2
1: SENSOR ON[1]
[End]
Figure 1-6. SEARCH.TP
SEARCH
1/4
1: SENSOR SEARCH START PR[1]
2: SENSOR SEARCH POINT[1]
3: SENSOR SEARCH END
[End]
1-13
A-83971
Note: The SEARCH.TP program uses Position Register 1 as shown in line 1 and Search
Schedule 1, as shown in line 2 of Figure 1-6. You must always use PR[1] for calibration.
The joint number is part of the Sensor Schedule, and it determines which joint from the
Servo-Robot Joint Library will be searched. You can use Procedure 1-4 to change the joint
number to be searched, or other information within a new Sensor Schedule, providing you
have set up the Servo-Robot sensor controller.
Note: It is important that all the Search bias settings are set to ZERO in the Sensor Search
schedule for calibration.
ITEM
DESCRIPTION
Servo-Robot
Schedule:
[Comment]
This item identifies the sensor schedule and provides an area in which to
add a comment for the schedule.
SR Track Joint This item selects the joint to be detected for tracking from the Servo-Robot
Num
joint library.
Tracking Type This item specifies the type of tracking that will be performed:
STANDARD tracking or STATIONARY tracking. By default, tracking
type is set to STANDARD. Stationary tracking refers to tracking an object
that is being rotated by an extended axis. Currently, only STANDARD
tracking is supported.
Motion
Sensitivity
This item specifies how reactive the robot motion system will be to sensor
data. A low value of motion sensitivity provides a slow motion response,
large filtering buffer, and so forth.
High values for motion sensitivity might be potentially unstable, but are
very reactive to sensor data.
A value of 1 is least sensitive, 5 is most sensitive. The default value is 3.
Motion sensitivity determines the motion buffer distance and the number of
consecutive failed scans allowed before the robot stops tracking.
Y Bias (Track) This item adds an offset to the Y value of the found joint location in the
sensor frame. This is used to obtain proper alignment of the welding wire to
the joint.
Z-Bias (Track) This item adds an offset to the Z value of the found joint location in the
sensor frame. This is used to obtain proper location of the welding wire in
the joint.
1-14
Tack
Avoidance
Default:
FALSE
Tack
Tack Avoidance is not currently available.
Threshold
Default: 0 mm
Range: 0-100
mm
Tack Length Tack Avoidance is not currently available.
Default: 0 mm
Range: 0-500
mm
SR Search
Joint Num
This item selects the joint number from the Servo-Robot's joint library for
searching purposes.
Search Type
Detection
Count
Retry Count
Range: 0-5
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.
You have set up the Servo-Robot sensor controller with the WinUser Software, and
you have taught a sensor frame.
1-15
A-83971
Steps
1.
Press DATA, then press F1, [TYPE]. Select "Sensor Sched" and press ENTER. You will
see a screen similar to the following.
SERVO ROBOT Sch.
1
2
3
4
5
6
7
8
9
2.
Trk Jnt_Num
1
1
1
1
1
1
1
1
1
Srch Jnt_Num
1
1
1
1
1
1
1
1
1
1/10
Times
1
1
1
1
1
1
1
1
1
Press F3, DETAIL. You will see a screen similar to the following.
SERVO ROBOT Sch.
1/18
1 Servo Robot Schedule:1\ [********]
Tracking Setup
2 SR Track Joint Num
3 Tracking Type
4 Motion Sensitivity
5 Y-Bias (mm)
6 Z-Bias (mm)
7 Stationary Track Frame
8 Tack Avoidance
9 Tack Threshold(mm)
10 Tack Length (mm)
Search Setup
11 SR Search Joint Num
12 Search Type
13 Detection Count
14 Retry Count
15 Retry Direction
16 Retry Distance (mm)
17 Y-Bias (mm)
18 Z-Bias (mm)
3.
1
Position
3
0
X
3.0
0.00
0.00
1-16
1
Standard
3
0.00
0.00
0
Disable
2.00
40.00
SR Search Joint Num is the joint library number in the Servo-Robot controller.
This must correspond to the reference joint used in the Ten Point Calibration Method.
Set Search Type to Position.
Set Detection Count to 3.
Set Retry Count to 0. Retry Direction and Retry Distance are not used when retry
count is zero. Refer to Section 1.4 for further details.
Set Y-Bias and Z-Bias to 0.
Items 2-10 contain tracking data, and items 11-18 contain search data. Refer to Section 1.4
for a description of the items on this screen.
Table 1-3. SETUP Sensor Frame Ten Point Screen Items
ITEM
DESCRIPTION
Sensor
TCP Reference Point This item allows you to teach the TCP reference points.
1 and 2
Reference Pair 1-4
Procedure 1-5 Ten Point Calibration for Servo-Robot Sensor Frame Setup
Conditions
A-83971
Point Method to 1 in the VISUS configuration to allow the scan point to be measured
at the top edge of the lap joint.
The Servo-Robot sensor's laser is turned off.
Steps
1.
Press MENUS.
2.
Select SETUP.
3.
4.
Select Sensor Frame. You will see a screen similar to the following.
SETUP Sensor Frame
Sensor Frame Setup/Direct Entry
1/6
Frame : Sensor
1
2
3
4
5
6
X:
Y:
Z:
W:
P:
R:
5.
6.
0.000
0.000
0.000
0.000
0.000
0.000
The reference positions must be taught with the wire tip (TCP) exactly on the joint line of
the weld. The recommended method for doing this is to mark two points on the calibration
joint at least 10 inches (254 mm) apart as shown in Figure 1-7 . These positions must also be
carefully marked on the joint since the remaining positions are taught with the laser scan line
crossing the joint exactly at these locations.
SETUP Sensor Frame
Sensor Frame Setup/Direct Entry
Sensor
X:
0.0 Y:
0.0 Z:
1/10
0.0
Jog the robot so that the TCP is at the first reference point, with the sensor between the two
reference points. The sensor scan should be roughly centered on the joint.
Move the cursor to the TCP reference Point 1.
Without changing the robot orientation, move the robot along the joint to the second
reference position. Record Reference Point 2.
10. See Figure 1-8 for an illustration of teaching reference points for Pair 1.
Figure 1-8. Teaching Pair 1
11. Turn on the laser by using the laser control switch on the sensor controller. Move the cursor
to TCP reference Point 1 and press F4, MOVE_TO to move to the first reference point.
12. Change the teach pendant jogging coordinate mode to WORLD.
13. Jog the robot to place the laser scan line on the 1st reference mark. Shift the robot position
in x, y and z directions to make sure that the TCP is NOT on the joint line. The laser scan
line must be exactly on the reference mark.
14. Move the cursor to Reference Pair 1, Point 1. Press F5, RECORD to record Pair 1-Point 1.
15. Jog the robot in WORLD mode, using only the X, Y & Z jog keys, and move the laser scan
line to the 2nd reference mark. Again, make sure that the TCP is NOT on the joint line. It
should be offset by different amounts and directions compared to Pair 1-Point 1. For the
calibration to be accurate, it is important that the scan line of the Servo-Robot sensor is
positioned exactly on the reference mark.
16. Move the cursor to Pair 1 Point 2.
17. Press F5, RECORD to record Pair 1-Point 2.
18. See Figure 1-9 for an illustration of teaching reference points for Pair 2.
1-19
A-83971
19. Move the cursor to reference pair 1 point 1. Press F4, MOVE TO. This will move the robot
back to the position you recorded to Pair 1 point 1. Shift the robot position in X, Y and Z
directions, and add some rotation about the TCP.
Note Make sure that the TCP is NOT on the calibration joint line. If Pair 1-Point 1 was to
the left, this time move it to the right. If it was high, make the new position low. The
laser scan line must cross exactly on the reference mark.
20. Move the cursor to reference pair 2, point 1. Press F5, RECORD to record Pair 2, Point 1.
21. Jog the robot in WORLD mode, using only the x, y & z jog keys, and move the laser scan
line to the 2nd reference mark.
Note Make sure that the TCP is NOT on the calibration joint line. It should be offset by
different amounts or directions relative to Pair 2-Point 1. The scan line must cross exactly
on the reference mark.
22. Move the cursor to reference Pair 2, Point 2.
23. Press F5, RECORD to record Pair 2-Point 2.
24. See Figure 1-10 for an illustration of teaching reference points for Pair 3.
Figure 1-10. Teaching Pair 3
1-20
35. Move the cursor to reference pair 1, point 1. Press F4, MOVE_TO
36. Change the teach pendant jogging coordinate mode to TOOL.
37. Rotate the robot about the Y and Z axes of the TCP by -5 to -10 degrees.
38. Change the teach pendant jogging mode back to WORLD.
39. Jog the robot using only the x, y and z jogging keys to place the laser scan line on the 1st
reference mark while including new offsets in the x, y and z directions. The laser scan line
must cross exactly on the reference mark.
40. Move the cursor to Reference pair 4, point 1. Press F5, RECORD to Record Pair 4-Point 1
41. Jog the robot using ONLY the x, y & z jog keys, and move the laser scan line to the 2nd
reference mark. It should be offset by different amounts or directions compared to Pair 4Point 1. As before, the scan line must cross exactly on the reference mark.
42. Move the cursor to Reference Pair 4, Point 2.
43. Press F5, RECORD to record Pair 4-Point 2
1-21
A-83971
Note: These last eight positions must be taught within the camera's field of view and with
the laser scan line placed exactly on the reference marks. To check whether the joint can
be found for any reference, move the robot to the reference position, then select and run
the SEARCH program. When the SEARCH.TP program runs, it should be able to find
the joint location for all eight reference positions. If the SEARCH.TP program runs
successfully, the joint can be found.
Warning
In the next step, the robot will move automatically to the points you taught.
To stop the robot immediately any time during the Calibration Routine,
release the DEADMAN switch or press the EMERGENCY STOP button.
44. To run the calibration routine, jog the robot away from the calibration joint, near and
above Reference Point 1.
a.
With the teach pendant enabled, make sure the robot is not in a PAUSE state or
faulted and set the desired override speed. (Usually 50% or less.)
b.
Hold the SHIFT button down and press F3, EXEC. Keep the SHIFT key held down.
c.
The robot will move between the pairs of points. At each position the camera will
search for the joint. When the routine is complete, a message will be shown on the
teach pendant and the program state will show "ABORTED". The new camera frame
values will be shown at the top of the screen. Write down these values for future use.
1.3.8
To verify the sensor frame, move the robot to any of the reference points.
a. Run the SEARCH.TP program.
b. Move the robot slowly to position register (PR[1]) used in SEARCH.TP to record
the joint location.
The TCP should be exactly in the joint.
1-22
ITEM
DESCRIPTION
Use Rotator
Track Fail DO
This item defines the Digital Output that will be turned ON when
the Track Failure occurs. The Track Failure is defined as one of the
following alarms MIGE-027 Can't detect joint continuously MIGE034 Path points too close MIGE-036 Track calculation fault MIGE037 No MIG EYE data in buffer MIGE-038 Can't calculate track
offset MIGE-039 Offset is too large. A setting of zero disables this
feature. (RESET will turn this output OFF)
DESCRIPTION
Search Fail DO
This item defines the Digital Output that will be turned ON when a
Search error occurs. A setting of 0 disables this feature. (RESET
will turn this output OFF)
Laser Status DO
This item defines the Digital Output that will be turned ON when
the Laser Status DI is ON and ready.
Laser Status DI
This item defines the Digital Input that will be turned on when the
Servo-Robot sensor is on.
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
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.
Press MENUS.
2.
Select SETUP.
3.
4.
1/10
[FALSE ]
[
0]
[
0]
[
0]
[
0]
[
1]
[ 10.0]
[mm
]
[
1]
[Enable]
1-23
5.
A-83971
1.4
1.4.1
Overview
To perform seam tracking and adaptive welding using the Servo-Robot sensor, you must set
up the sensor schedules properly. This section describes the sensor data (schedules) and
sensor status information.
1.4.2
1-24
Srch Jnt_Num
1
1
1
1
1
1
1
1
1
Times
1
1
1
1
1
1
1
1
1
1
Standard
3
0.00
0.00
0
Disable
2.00
40.00
1
Position
1
0
X
3.0
0.00
0.00
1-25
A-83971
ITEM
DESCRIPTION
Servo-Robot
This item identifies the sensor schedule and provides an area in
Schedule: [Comment] which to add a comment for the schedule.
SR Track Joint Num
This item selects the joint to be detected for tracking from the
Servo-Robot joint library.
Tracking Type
Motion Sensitivity
This item specifies how reactive the robot motion system will be to
sensor data. A low value of motion sensitivity provides a slow
motion response, large filtering buffer, and so forth.
High values for motion sensitivity might be potentially unstable, but
are very reactive to sensor data.
A value of 1 is least sensitive, 5 is most sensitive. The default value
is 3.
Motion sensitivity determines the motion buffer distance and the
number of consecutive failed scans allowed before the robot stops
tracking.
Y Bias (Track)
This item adds an offset to the Y value of the found joint location in
the sensor frame. This is used to obtain proper alignment of the
welding wire to the joint.
Z-Bias (Track)
This item adds an offset to the Z value of the found joint location in
the sensor frame. This is used to obtain proper location of the
welding wire in the joint.
Stationary Track
Frame
Tack Avoidance
Default: FALSE
Tack Threshold
Tack Length
Default: 0 mm
Range: 0-500 mm
SR Search Joint Num This item selects the joint number from the Servo-Robot's joint
library for searching purposes.
1-26
1.4.3
ITEM
DESCRIPTION
Search Type
Detection Count
Retry Count
Range: 0-5
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)
Z-Bias (Search)
Motion Sensitivity
The motion control software uses a ratio of leading and trailing data to calculate the offset to
planned motion. This determines how quickly sensor offsets are applied during motion.
The data in the motion buffer distance is applied based on motion sensitivity setting. See
Figure 1-14 .
1-27
A-83971
Figure 1-14. Track Length and the Ratio Between the Front and the Rear Areas
When the front distance in the motion buffer distance is short, a track fault can be generated
easily, even if the distance of the motion buffer distance is long.
The ratio between the front and the rear distance has been predetermined for each sensitivity
level. This ratio also determines the maximum number of consecutive failed scans and the
length of the motion buffer. The appropriate system variable is set automatically according to
the Motion Sensitivity item in the sensor schedule.
When Motion Sensitivity is set to a low value, the distance of the motion buffer is long, the
ratio of front to rear area is weighted to the rear data, and the maximum number of
consecutive failed scans is higher. The low sensitivity, will use the data from many scans,
causing the system to react slower to the sensor offset information. High sensitivity uses less
rear data and does not allow as many lost scans. The reaction to joint location changes will
be much quicker.
The ratio is set using the data shown in Table 1-6 .
1-28
Motion
Sensitivity
Front : Rear
7:18
7:13
7:8
5:5
4:4
Motion buffer 25
distance (mm)
20
15
10
Number of
consecutive
failed scans
11
Tracking errors provide HELP messages that indicate why a tracking failure occurred. If, for
example, the cause is lost data scans, then the motion sensitivity should be decreased, or the
detection sensitivity changed to improve joint detections.
Use Procedure 1-7 to set up a sensor schedule.
Procedure 1-7 Setting Up a Sensor Schedule
Steps
1.
Press MENUS.
2.
Select DATA.
3.
4.
5.
Select Sensor Sched. The Sensor Schedule LIST screen or DETAIL screen will be
displayed. All of the items shown on the Schedule LIST screen are also included in the
DETAIL screen for each schedule.
If F3, LIST, is displayed, press it to display the following screen.
SERVO ROBOT Sch.
1/10 Trk Jnt_Num
Times
1
2
3
4
5
6
7
8
9
6.
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
Srch Jnt_Num
1
1
1
1
1
1
1
1
1
To display the items in the DETAIL screen , press F3, DETAIL. You will see a screen
similar to the following.
1-29
A-83971
7.
8.
1.4.4
1
Standard
3
0.00
0.00
0
Disable
2.00
40.00
1
Position
1
0
X
3.0
0.00
0.00
Sensor Schedules
The default number of sensor schedules is ten. The number of schedules can be increased to
255. If the number of schedules is reduced, the schedule data is erased accordingly. Use
Procedure 1-8 to change the number of sensor schedules.
1-30
1.
Press MENUS.
2.
Select SYSTEM.
3.
4.
Select Variables.
5.
6.
7.
1.4.5
Detection Log
The detection log is a screen where the sensor reports the results of every data scan from the
sensor, either from searching or tracking. This is useful while setting up a production job or
troubleshooting a search or tracking failure.
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.
Review the detection data and all preceding data to diagnose the problem. Also, observe the
joint and TCP to determine if the appearance of the joint is the cause of the problem.
For the example calculation, the fault occurs at or near data item 25 in the detection log.
1-31
A-83971
The detection log contains 200 detections from the sensor. Table 1-7 lists and describes each
item on the detection log. Use Procedure 1-9 to display the detection log.
Table 1-7. Detection Log Data
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
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.
2.
Press F1, [TYPE], and then select Sensor. You will see a screen similar to the following.
STATUS
CODE
1 0T0
2 0T0
3 0T0
Detect Log
X
Y
0.00
0.00
0.00
0.00
0.00
0.00
Z
GAP
0.00 0.00
0.00 0.00
0.00 0.00
1-32
The detection log will not display the data while the sensor is actively gathering data
(for example, during tracking).
When the detection log is displayed, any new data is not automatically updated to
the screen. To update the information on the screen, display any other screen and then
re-display the detection log.
In the detection log, detection code = 0 means the sensor located the joint properly.
In the detection log, data type S = Search, T = Track, C = Cleared.
To clear the entire detection log , press SHIFT and F3, CLEAR.
To display HELP , move the cursor to the desired detection index, and press F5, HELP.
See the following screen for an example.
$DTCT_CODE = 4
Insuficient good data.
STATUS Detect Log
Code
X
Y
2 0T 0 14.25 19.23
3 4T 0 44.78
-.79
4 4T 0 44.78
-.79
5 4T 0 44.78
-.79
6 4T 0 44.78
-.79
7 4T 0 44.78
-.79
Z
Gap
-33.6 11.48
139.9 0.00
139.9 0.00
139.9 0.00
139.9 0.00
139.9 0.00
When you are finished, press the PREV key to display the main detection log screen.
1.5
SETTING WELD PROCESS DATA FOR MULTI-PASS
ADAPTIVE WELDING
When the Servo-Robot option is installed, all data required for Multi-Pass Adaptive Welding
is contained within the teach pendant program. This data includes the nominal weld, weave,
run-in, burnback, and crater fill schedules, the offsets for each pass, and the joint geometry
parameters and process limits required for adaptive welding. This data and the programming
method described in Section 1.5.1 and Section 1.5.2 enable you to perform Multi-Pass
Adaptive Welding. This section describes how to create and modify the data in a teach
pendant program.
1.5.1
A-83971
Create a new program or move the cursor to the program for which you want to set process
data. If you are editing an existing program, you will see a screen similar to the following. If
you are creating a new program, you will see a screen similar to the one shown in Step 2 .
Select
No.
1
2
3
4
5
6
7
8
9
2.
9/9
]
]
]
]
]
]
]
]
]
Press F2, DETAIL. You will see a screen similar to the following.
Program detail
1/5
Creation Date:
Modification Date:
Copy Source:
[
Positions: TRUE Size:
2-Feb-xxxx
2-Feb-xxxx
]
2848 Byte
1 Program name:
[WELD01A ]
2 Sub Type:
[None
]
3 Comment:
[
]
Group Mask:
[1,*,*,*,*]
4 Write protect:
[OFF
]
Press F3, NEXT. You will see a screen similar to the following.
1-34
3.
4.
To view and edit the data, move the cursor to the item and press ENTER.
5.
Move the cursor to Weld schedules and press ENTER. You will see a screen similar
to the following.
In the screens shown below, one line of data corresponds to each pass. Note that the
actual parameters (such as trim or volts) depend on the equipment that is currently
selected.
Program detail
Weld schedules
Pass Trim
IPM
IPM
1 85.0 300.0 40
2 85.0 300.0 35
3 85.0 300.0 35
4 85.0 300.0 35
5 85.0 300.0 35
6 85.0 300.0 35
b.
6.
1/6
Move the cursor to Weave schedules and press ENTER. You will see a screen
similar to the following.
1-35
A-83971
Program detail
Weave schedules
1/6
Pass FRE(Hz) AMP(mm) R_DW(sec) L_DW(sec)
1
5.0
2.0
.100
.100
2
1.0
4.0
.100
.100
3
1.0
4.0
.100
.100
4
1.0
4.0
.100
.100
5
1.0
4.0
.100
.100
6
1.0
4.0
.100
.100
b.
7.
To view the Multi-Pass offsets, move the cursor to Multi-pass offsets and press ENTER.
You will see a screen similar to the following.
Program detail
Multi-pass offsets
1/6
Pass X(mm) Y(mm) Z(mm) Wrk(deg) Trv(deg)
1
0.0 0.0 0.0
0.0
0.0
2
0.0 0.0 0.0
0.0
0.0
3
0.0 0.0 0.0
0.0
0.0
4
0.0 0.0 0.0
0.0
0.0
5
0.0 0.0 0.0
0.0
0.0
6
0.0 0.0 0.0
0.0
0.0
In addition to the x, y, and z offsets, you can specify offsets to work and travel angles.
These offsets are with respect to the tracking pass. These offsets will be applied when the
multi-pass offset instruction is used in the teach pendant program, as described in Section
1.5.2. Refer to Multi Pass documentation for the definition of the offsets.
Usually pass 1 is the tracking pass. Therefore, the offsets specified for pass 1 are never
used. However, if offsets are needed for the first pass, specify the y and z-bias values in the
track schedule.
8.
To view the run-in schedules, move the cursor to Run-in schedules and press ENTER.
Each pass can have different run-in schedules as specified in the following screen. Refer to
Arc Tool manual for more information on run-in.
Program detail
Run-in schedules
Pass Trim
IPM
1 85.0 300.0
2 85.0 300.0
3 85.0 300.0
4 85.0 300.0
5 85.0 300.0
6 85.0 300.0
1-36
1/6
Sec
0.00
0.00
0.00
0.00
0.00
0.00
Move the cursor to Burnback schedules and press ENTER. Each pass can have
different burnback schedules, as specified in the following screen. Refer to Arc Tool
manual for more information on burnback.
Program detail
Burnback schedules
Pass Trim
IPM
Sec
1 85.0
0.0 .10
2 85.0
0.0 .10
3 85.0
0.0 .10
4 85.0
0.0 .10
5 85.0
0.0 .10
6 85.0
0.0 .10
b.
1/6
Move the cursor to Crater Fill Schedules and press ENTER. Each pass can have
different crater fill schedules, as specified in the following screen.
Program detail
Crater fill schedules
1 85.0 300.0 0.00
2 85.0 300.0 0.00
3 85.0 300.0 0.00
4 85.0 300.0 0.00
5 85.0 300.0 0.00
6 85.0 300.0 0.00
b.
1/6
11. To display the schedule DETAIL screen for the pass the cursor is pointing to, press F2,
DETAIL. See the following screen for an example.
Program detail
Weld schedule
1
2
3
4
5
Pass Number: 1
Program select: 1 [
Command Trim
Command Wire feed
Travel speed
Delay Time
1/6
]
85.00
300.00
40
0.00
Trim
IPM
IPM
sec
12. To display the schedule DETAIL for another pass , press F2, PASS, and enter the pass
number. The data for the new pass will be displayed.
1-37
A-83971
13. To view the schedule LISTING screen, press F4, EXIT, and the schedules for all of the
passes will be displayed.
14. To copy the data for the current pass to another pass , press NEXT, >, and then press
F2, COPY. The current pass is the one to which the cursor is pointing.
15. To restore the default schedule for the current pass , press NEXT, >, and then press F3,
CLEAR. The default schedule depends on the equipment selected.
16. To change the display between different screens , press F1, [TYPE], and select the screen
from the [TYPE] menu. See the following screen for an example.
1
2
3
4
5
6
1.5.2
Weld
Weave
Offsets
Run-in
Burnback
Crater fill
1-38
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:
Procedure
Use Procedure 1-11 to set up the joint data and limits.
Note Please be aware of the following with regard to Procedure 1-11 .
Process parameter names for welding equipment vary based on the welding power supply
and the weld process you have selected. These are column headers in many of the tables.
Adaptive parameters dealing with robot speed will have the units in the Weld System screen
in the Setup menu set to "Weld Speed Function - Default Unit."
Adaptive parameters dealing with wire feed speed will have the units in the Weld Equipment
screen in the Setup menu set to Wire feed speed units."
Procedure 1-11 Setting up the Adaptive Data
Steps
1.
Press SELECT, and move the cursor to the program for which you want to set joint data and
limits.
2.
3.
1-39
Program detail
Adapt data
Program name: WELD01
1
2
3
4
5
1/5
Joint type:
Joint data & limits:
Proc limits & constants:
Pass specific data:
Algorithm .PC file:
CORNER
<*DETAIL*>
<*DETAIL*>
<*DETAIL*>
[*uninit*]
4.
5.
A-83971
Move the cursor to Joint data & limits and press ENTER. You will see a screen
similar to the following.
Note: This screen allows you to set the nominal, low, and high values for the joint
geometry data. You can also configure the derived variables S1-S5 and set the
nominal, low, and high values for these as well. You can also choose to post an error
or warning if the joint geometry (as seen by the sensor) is outside of the high/low
limits set.
Program detail
Joint data & limits
Variable Nominal
(mm)
1 Gap
0.0
2 Mismatch
0.0
3 Area(mm^2) 0.0
4 S1: **- *** 0.0
5 S2: **- *** 0.0
6 S3: **- *** 0.0
7 S4: **- *** 0.0
8 S5: **- *** 0.0
b.
Low
(mm)
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
1/8
High Error
(mm)
0.0 NONE
0.0 NONE
0.0 NONE
0.0 NONE
0.0 NONE
0.0 NONE
0.0 NONE
0.0 NONE
Set the nominal, low, and high values for the joint parameters.
These values are to be used by the adaptive algorithm for changing weld and weave
parameters. Some of the parameters listed in the above screen might not be
meaningful for the joint type selected. For example, there is no area value for a lap
joint.
Refer to the Servo-Robot VISUS Manual to determine the joint data available for
each joint type supported, and use only the available data.
c.
To set the derived variables S1 - S5, move the cursor to the corresponding line and
select the first and second break points.
Press F4, CHOICE, to select a breakpoint from the sub-window.
Make sure that the break points selected are available for the joint type.
1-40
e.
Move the cursor to the Error column and set the error severity.
Where the joint data falls outside the limits set in the above screen, an error or
warning can be posted. You have four choices for error severity: NONE, WARN,
PAUSE, and ABORT.
For example, if the gap values are out of range, "MIGE-122, Gap value is out of
range" is posted if the severity is set to something other than NONE.
When the severity is NONE, range checking is not performed. When the severity is
WARN, the error message is posted as a warning only and the program execution is
not affected. Similarly, when the severity is PAUSE or ABORT, the program
execution is paused or aborted respectively.
These error messages can be used to identify and discard joints that cannot be
welded with acceptable quality. When the joint data is within the specified limits, the
adaptive algorithm should compute the process parameters to account for the joint
variation. It is expected that the adaptive algorithm works in the entire range of the
joint data specified in the above screen. Refer to Section 1.8 for a description of the
adaptive welding algorithm.
f.
6.
When you are finished setting data, press F4, EXIT, or PREV to display the Adapt
data screen.
Move the cursor to Proc limits & constants and press ENTER. You will see a screen
similar to the following.
1-41
A-83971
b.
Set the lower and upper limits for weld and weave parameters.
These limits are used in the adaptive algorithm file.
In addition to process data, you can use a total of six constants in the adaptive
algorithm. Constants C1, C2, and C3 are global and have the same value for all
passes.
Constants CP1, CP2, and CP3 are pass-specific and can have different values for
each pass. The actual values can be entered in the next screen.
c.
d.
7.
When you are finished setting data, press F4, EXIT, or PREV to display the Adapt
data screen.
1-42
If desired, modify the names for the Global and Pass Specific Constants.
Move the cursor to Pass specific data and press ENTER. You will see a screen
similar to the following.
b.
CP3
0.00
0.00
0.00
0.00
0.00
0.00
WELD
DISABLE
DISABLE
DISABLE
DISABLE
DISABLE
DISABLE
1/6
WEAVE
DISABLE
DISABLE
DISABLE
DISABLE
DISABLE
DISABLE
Set the pass specific constants CP1, CP2, & CP3. These values can be used in the
adaptive algorithm to tune the algorithm differently for each pass. You can also
ENABLE or DISABLE adaptive welding and weaving from this screen.
If you ENABLE Adaptive WELD for a particular pass, on that pass, changes to the
weld parameters such as voltage, wire feed, and travel speed will be applied as
calculated by the adaptive algorithm.
Similarly, if Adaptive WEAVE is enabled, changes to the weave parameters such as
amplitude and frequency will be applied as determined by the adaptive algorithm.
c.
8.
When you are finished setting data, press F4, EXIT, to display the Adapt data
screen.
1.6
a.
Move the cursor to select one of the ____ALGO.PC algorithm files and press
ENTER.
b.
Move the cursor to select a KAREL program you have written and have previously
loaded.
PROGRAMMING
Several instructions are available that allow sensor functions to be executed from within a
teach pendant program. These instructions are used with the standard Arc Tool instructions,
such as Arc Start, to create programs that search, track and weld.
This section includes information on the following topics.
1-43
1.6.1
A-83971
Search
The search function is used to find a part prior to starting a weld. Using this information, the
robot can be programmed to properly align the welding wire with the weld joint prior to
starting a weld.
Two types of search output can be calculated:
Position type
Offset type
The OFFSET function is used to correct the wire placement from the result of the SENSOR
SEARCH function. This function can be used with an offset type search routine.
Search Instruction
Listed below are SENSOR SEARCH instructions and descriptions. A standard search routine
consists of a combination of the following instructions:
A search routine is also used in combination with one or more position instructions to
establish the physical location where the search will be executed.
SENSOR SEARCH START PR[i]
SENSOR SEARCH START is used to identify the location in a program where a search
routine will be started. The Position Register (PR) stores the position or offset data from the
Search Routine.
i = Position register number (Normal range = 1 to 100)
SENSOR SEARCH POINT [i]
SENSOR SEARCH POINT identifies the location in a search routine where the actual
scanning (searching) of the joint occurs. The parameter values used for searching come from
the sensor schedule.
i = Sensor schedule number (Normal range = 1 to 10)
Note If the SENSOR SEARCH fails when this information is used, the program will be
paused on the line that contains the search point instruction.
1-44
If the search retry function is enabled, the robot will continue searching based on the
sensor schedule data.
After all search retries have failed, the program will branch to the LBL[j] instruction
and continue execution.
When the branch to label is executed, the current search routine is disabled as if a
SENSOR SEARCH END has been executed, but no data is calculated.
If a search fail digital output has been assigned, the output is turned ON. Pressing the
RESET key or issuing a SEARCH START command will cause the search fail digital
output to turn OFF.
Program execution continues at the location where the corresponding LBL[j] exists in
the program.
1.6.2
SENSOR ON
SENSOR OFF
SEARCH START
SEARCH POINT
SEARCH END
OFFSET START
OFFSET END
Search Schedule
To execute SEARCH function, set schedule data properly. Schedule data is set on the sensor
schedule screen. Refer to Section 1.4 for more information.
1.6.3
Offset Instructions
This section describes the following SENSOR OFFSET instructions.
A-83971
1.6.4
Search Programming
Sensor search programming is used to find a part prior to starting a weld. With this search
information, you can program the robot to align the welding wire with the weld joint prior to
starting a weld or starting sensor tracking.
Two types of search output can be calculated when a search routine is executed:
Position type
Offset type
The results of the search are stored in the search instruction position register.
Position Type Search
A position type search is used to calculate a real position in space, which is usually the
location of an Arc Start or TRACK SENSOR[i] instruction. In a position type search, the
sensor records the joint location in a position register if detection is successful. The robot can
then be instructed to move to this position register.
Both the position type and offset type searches use the same program instructions. The
Search Type item in the sensor schedule determines which type of search output will be
calculated.
A position type search uses only a single search point instruction in the search routine.
Note In position-type compensation, the following positional data is set in the position
registers:
1-46
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.
Note Offset type data calculated by the search are relative to the sensor frame (translated to
WORLD Frame). Position type data calculated by the search are calculated first relative to
the sensor frame, and then translated into the WORLD frame relative to the TCP.
Example 1-2 contains an example of an offset type search.
1-47
A-83971
Instruction
1: J P[1] 50% CNT100
2: L P[2] 80mm/sec FINE
3: SENSOR SEARCH START PR[1]
4: SENSOR SEARCH POINT[3]
5: J P[3] 40% CNT100
6: J P[4] 40% CNT100
7: J P[5] 40% FINE
8: SENSOR SEARCH POINT[4]
9: SENSOR SEARCH END
10: SENSOR OFFSET START PR[1]
11: L P[6] 100mm/sec FINE
12: Arc Start[2]
13: L P[8] 25mm/sec CNT100
14: Arc End[2]
15: J P[9] 40% FINE
16: Arc Start[3]
17: L P[10] 25mm/sec CNT100
18: Arc End[3]
19: SENSOR OFFSET END
20: J P[1] 50% FINE
Description
Move to first search position
If $MIG_CALFLG=2 , the z height is calculated as a frame rotation about the first searched
1-48
If $MIG_CALFLG=3 , the z height is calculated from the rotation about the first and second
paths. $MIG_CALFLG=3 causes the weld plane to tilt about the trained paths. See Figure 121.
Figure 1-21. $MIG_CALFLG = 3
2.
3.
4.
A-83971
Choose the offset search type to offset one or more points in a weld path. This is
typically used for short welds.
Program the desired operation.
Test the program.
Run the program in production.
Instruction
Description
1: J P[1] 50% FINE
Move to P[1]
2: SENSOR SEARCH START PR[4] Start Search Routine
3: SENSOR SEARCH POINT[2]
Search joint, use Schedule [2]
4: SENSOR SEARCH END
Stop search routine, calculate pos.PR[4]
5: L PR[4] 50% FINE
Move to PR[4]
6: Arc Start [3]
7: Track SENSOR [2]
8: L P[2] 35mm/sec FINE
9: Arc End[3]
10: Track End
Figure 1-22. One Position Search - Position Type for Weld Start Position
1-50
Instruction
Description
1: J P[1] 100% CNT100
2: J P[2] 100% FINE
3: SENSOR SEARCH START PR[3]
Start search routine
4: J P[3] 40% FINE
Move to first search point P[3]
5: SENSOR SEARCH POINT[1]
Search joint, schedule [1]
6: SENSOR SEARCH END
Stop search routine, calculate offset
7: J P[4] 100% FINE
8: SENSOR OFFSET START PR[3]
Start point for applying offset
9: J P[5] 100% FINE ARC START [1]
10: L P[6] 20mm/sec CNT100
11: L P[7] 20mm/sec CNT100
14: L P[8] 20mm/sec CNT100
15: L P[9] 20mm/sec CNT100
16: L P[10] 20mm/sec FINE ARC END [1]
17: SENSOR OFFSET END
Stop point for Servo Robot offset
18: J P[1] 100% FINE
Note P[1], P[2], and P[4], not shown in Figure 1-23 , are the approach and search points.
1-51
A-83971
Figure 1-23. Welded Part with 2-D Offset (One Search Point)
Instruction
Description
1: J P[1] 100% CNT100
2: J P[2] 100% FINE
3: SENSOR SEARCH START PR[3]
Start search routine
4: J P[3] 40% FINE
Move to first search point P[3]
5: SENSOR SEARCH POINT[1]
Search joint, schedule [1]
6: J P[11] 40% FINE
Move to second search point P[11]
7: SENSOR SEARCH POINT[2]
Search joint, schedule[2]
8: SENSOR SEARCH END
Stop search routine, calculate offset
9: J P[4] 100% FINE
10: SENSOR OFFSET START PR[3]
Start point for applying offset
11: J P[5] 100% FINE ARC START [1]
12: L P[6] 20mm/sec CNT100
13: L P[7] 20mm/sec CNT100
14: L P[8] 20mm/sec CNT100
15: L P[9] 20mm/sec CNT100
16: L P[10] 20mm/sec FINE ARC END [1]
17: SENSOR OFFSET END
Stop point for Servo Robot offset
18: J P[1] 100% FINE
1-52
Note P[1], P[2], and P[3] are not shown in Figure 1-24 for clarity.
Note For this search to calculate the xyz offset correctly, segment P[8] - P[9] and segment
P[9] - P[10] must be coplaner and perpendicular.
Note: The first and second searches can be programmed at any position. However, z will be
determined solely by the second search when $MIG_CALFLG=1 and 2. Refer to the
description of the $MIG_CALFLG system variable in Section 1.6.4 .
SEARCH POINT[j] LBL[k] Usage
You can include the LBL[k] option for sensor searches that require specific actions if the
search fails. The instruction execution is identical with or without the LBL[k] option as long
as the search is successful.
If a detection error occurs during the search (the search is not successful), the following
events occur:
If the Retry Count > 0, the robot will move and a new search will be attempted.
After all search retries have failed or if a single search fails when Retry Count = 0, the
program will branch to LBL[k] and continue execution.
The program will not stop with a PAUSE error.
If the branch to label is executed, the current search routine is disabled as if a SEARCH
END has been executed.
Note In the case of a failed search, the position register of the SEARCH START PR[i]
instruction will still contain its previous value.
If a search fail digital output has been assigned, the output is turned ON. Pressing the
RESET key or issuing another SEARCH START command will cause the search fail
digital output to turn OFF.
Note: The taught point for SEARCH must use FINE termination type.
1-53
A-83971
Instruction
1: J P[1] 50% CNT100
2: J P[2] 50% FINE
3: SENSOR SEARCH START PR[1]
4: SENSOR SEARCH POINT[3] LBL[1]
5: SENSOR SEARCH END
6: JMP LBL[2]
7: LBL[1]
8: J P[3] 40% FINE
9: SENSOR SEARCH START PR[1]
10: SENSOR SEARCH POINT[4] LBL[3]
11: SENSOR SEARCH END
12: LBL[2]
13: L PR[1] 100mm/sec FINE
14: Arc Start[2]
15: TRACK SENSOR[3]
16: L P[8] 25mm/sec CNT100
17: L P[10] 25mm/sec CNT100
18: Arc End[2]
19: LBL[3]
20: J P[1] 50% FINE
Description
Move to first search point
Start search routine
Note Searching occurs at the same location using either position type or offset type searches.
Performing a Search at a Taught Point
Use Procedure 1-12 to perform a search at a taught point.
Procedure 1-12 Performing a Search at a Taught Point
Steps
1.
Jog the robot so that the TCP (weld wire) and the laser scan are both on the joint to be
searched. This will ensure proper alignment to the joint.
Note For a position type search, the tool (torch) angles used for searching must be the
same as the angle desired for welding. Orientation of the last search position is used in
the calculated search position. The data in the position register will be the location of the
laser line on the joint and the torch orientation at the taught point.
2.
3.
Jog the robot so that the laser scan is at the desired search location with the TCP slightly
above the joint. This will provide some clearance between the joint and the TCP to allow part
movement.
Press F1, POINT.
Note Teach this location with a FINE termination type.
4.
1-54
5.
b.
Select SENSOR.
c.
d.
Press ENTER.
b.
Select SENSOR.
c.
6.
b.
Select SENSOR.
c.
1-55
A-83971
Figure 1-26 shows an example of using two-position type searches to find both ends
of a joint to be welded. The robot is then commanded to weld between these two
automatically taught positions (PR[1] and PR[2]).
Figure 1-26. Two Points to Determine Weld Path
Search Retry
Search Retry is an automatic recovery feature. In the event that a search fails, the robot will
reposition the sensor to perform another search. The number of retries is controlled by the
value of RETRY COUNT in the sensor schedule. A value of zero indicates that search retry
is disabled. When a search fails, the robot will move along a specified direction by a
specified distance. These values are set in the sensor schedule as RETRY DIRECTION and
RETRY DISTANCE. The robot motion is relative to the sensor frame.
If the number of retries is specified greater than 1 with a maximum of 5, motion will
alternate direction for successive retries.
This process continues altering motion directions and adding to the retry distance until the
number of retries is exceeded, or searching is successful.
For example, if RETRY COUNT = 4, RETRY DISTANCE = 3, and RETRY DIRECTION =
x, the sequence shown in Table 1-9 is possible.
Table 1-9. Search Retry Count
1-56
Retry Number
Motion
Programmed position
Fail
Fail
Fail
Fail
Successful or Fail
1.6.5
Track
This section describes the programming for sensor TRACK function. The TRACK function
is used to follow the seam line while welding.
Track Instruction
Tracking uses the following instructions.
Track SENSOR [i] Track End
Teach the Track instructions at the tracking start point. The index i is the sensor schedule
number. Teach Track End instructions at the tracking end point.
Including Track Instructions in a Program
Track instructions are in the TRACK instruction set within the INST submenu. The track
instructions are as follows:
1.6.6
TRACK
TRACK END
Track Schedule
After the tracking instructions and position points are properly taught in a program, the
sensor schedule is used to define and adjust tracking parameters. After a sensor schedule is
defined for a specified joint type, it can be used by any program that is tracking a similar
joint.
1.6.7
Track Programming
Track programming is used to provide dynamic offsets (while welding), to adjust the robot
motion. This allows the TCP (welding wire) to follow the actual weld joint instead of the
programmed weld joint.
Typically, the tracking function is preceded by a search routine. Welds can also be started
without searching, and then activate the tracking function. This might affect the weld start
location.
Tracking Program Example
The following sensor tracking instructions are available:
Example 1-7 contains an example of using tracking instructions in a teach pendant program.
1-57
A-83971
Instruction
1: J P[1] 50% FINE
2: SENSOR SEARCH START PR[4]
3: SENSOR SEARCH POINT[2]
4: SENSOR SEARCH END
5: L PR[4] 50% FINE
6: Arc Start [3]
7: TRACK SENSOR[2]
8: L P[2] 35mm/sec CNT100
9: L P[3] 35mm/sec FINE
10: Arc End [3]
11: Track End
Description
End tracking
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:
Enough positions must be taught to keep the joint within the scanning range of the
servo-robot sensor as the joint is tracked.
Warning
DANGER Visible Laser Radiation. Avoid direct exposure to beam. Do
NOT look directly into the beam.
Direct exposure can cause damage to your eyes.
During the execution of the above program sequence, the laser will be
operating at HIGH power levels. Do NOT look directly into the beam
path. Direct exposure can cause damage to your eyes.
1-58
Instruction
1: J P[1] 30% FINE
2: SENSOR SEARCH START PR[1]
3: SENSOR SEARCH POINT [2]
4: SENSOR SEARCH End
5: L PR[1] 30 % FINE
6: Arc Start[1]
7: TRACK SENSOR [2]
8: L P[2] 25mm/sec CNT100
Description
Search routine
Instruction
1: J P[1] 30% FINE
2: L P[2] 25mm/sec FINE
3: Arc Start[1]
4: Track SENSOR [2]
Description
Move to trained point, start welding, then
track into the joint
Use this method only when the desired weld start position does not vary from part to part.
The first method, using the sensor search to determine the Arc Start position, is the
recommended method. Note that in both methods, the sensor does not provide any
information for the first approximately 50 mm (sensor lead distance) of the weld joint. If
tracking the first 50 mm of the joint is critical to your application, use the example shown in
Example 1-10.
1-59
A-83971
Instruction
Description
1: J P[1] 50% FINE
2: SENSOR SEARCH START PR[4]
3: SENSOR SEARCH POINT[2]
4: SENSOR SEARCH END
5: TRACK SENSOR[2]
Start tracking before moving to Arc Start position
6: L PR[4] 50% FINE
7: Arc Start [3]
8: L P[2] 35mm/sec CNT100
9: L P[3] 35mm/sec FINE
10: Arc End [3]
10: Track End
End tracking
In this program, the schedule data is changed on line 7. The tracking of line 5 and 6 are
executed with schedule 2, and line 8 and 9 are executed with schedule 5. The following
schedule data can be modified by the TRACK START instruction during tracking:
Joint number
Motion sensitivity
Y and Z offset
Performing a sensor schedule change after tracking is established is useful in accommodating
1-60
In case that the robot is jogged after the error is reset, the welding will resume after the
robot moves back to the stop position.
2. The robot will move to the next destination point without tracking. The destination point
is compensated by the offset from the tracking before the alarm occurred.
3. When the robot reaches the next destination point, the alarm "MIGE-055 Track ready
for resume" will occur. The robot will be paused again.
4. When the program is restarted after resetting the error, tracking and welding will
resume.
To enable the Tracking Error Recovery, enable the Original Path Resume function in weld
system setup menu, and enable TRACKING ERROR RECOVERY in Sensor system set up
1-61
A-83971
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 MIGE055 does not occur.
In case that the logic instructions are taught between the Sensor Error line and the next
motion instruction, the alarm MIGE-055 occurs after the logic instructions are executed.
Figure 1-28. Example of How the Sensor Resumes from a Tracking Error
1-62
Tracking is suspended.
The Sensor offset is recorded. The current offset, in the world coordinate system, will be
applied uniformly to all subsequently taught points until a TRACK or TRACK END
instruction is executed.
The current weld schedule is maintained.
Figure 1-29 is a plan view of a lap joint with a cutout in the lower plate and a notch in the
upper plate.
It is assumed that the notch does not shift along the x direction of the weld path.
Example 1-11 shows the program instructions used to execute the weld path shown in Figure
1-29 . In this program, the notch around the cutout is not welded, and welding is suspended
across the cutout.
1-63
A-83971
Instruction
1: J P[1] 100% FINE
2: SENSOR SEARCH START PR[1]
3: SENSOR SEARCH POINT [1]
4: SENSOR SEARCH END
5: L PR[1] 100mm/sec FINE
6: Arc Start[1]
7: TRACK SENSOR[1]
8: L P[2] 25mm/sec CNT100
9: Arc End[1]
10: TRACK SENSOR[99]
11: L P[3] 30mm/sec CNT100
12: Arc Start [2]
13: TRACK SENSOR[2]
14: L P[4] 25mm/sec FINE
15: Arc End[2]
16: Track End
Description
TRACK SENSOR[99] uses bias and offset and the adaptive weld schedule from the TRACK
SENSOR[1] instruction until the TRACK SENSOR[2] instruction is executed. When P[3] is
reached, the tracking resumes with the full information of the schedule 2 data.
The bias and offset values used throughout the TRACK SENSOR[99] instruction are
maintained after P[3] until tracking is re-established. The offset and bias will begin at lead
distance of laser line to TCP after the scheduled change point, then the new bias and offset
obtained from the TRACK SENSOR[2] instruction are used.
Using TRACK SENSOR[99] to Weld a Notch
Figure 1-30 shows how the TRACK SENSOR[99] instruction is used to weld a notch.
Figure 1-30. Hold Offset/Bias During a Non-tracked Weld
Example 1-12 shows the program instructions used to execute the weld path shown in Figure
1-30.
1-64
Instruction
1: J P[1] 100% FINE
2: SENSOR SEARCH START PR[1]
3: SENSOR SEARCH POINT [1]
4: SENSOR SEARCH END
5: L PR[1] 100mm/sec FINE
6: Arc Start[1]
7: TRACK SENSOR[1]
8: L P[2] 25mm/sec CNT100
9: TRACK SENSOR[99]
10: L P[3] 30mm/sec CNT100
11: L P[4] 25mm/sec CNT100
12: L P[5] 25mm/sec CNT100
13: L P[6] 25mm/sec CNT100
14: L P[7] 25mm/sec CNT100
15: TRACK SENSOR[2]
16: L P[8] 25mm/sec FINE
17: Arc End[2]
18: Track End
Note P[3] through P[7] will have a sensor lateral and Z offset applied uniformly. P[3]...P[4]
might be a circular motion type.
1.7
1.7.1
A-83971
1-66
SYSTEM VARIABLE
DESCRIPTION
$RPM_PG.$PITCH
default : 10 mm
$RPM_PG.$PITCH_MODE
default: 0
Press MENUS.
2.
Select SETUP.
3.
Select Sensor Sys. You will see a screen similar to the following.
1-67
1.7.2
A-83971
[FALSE ]
[
0]
[
0]
[
0]
[
0]
[
1]
[ 10.0]
[mm
]
[
1]
[Enable]
4.
5.
6.
Enter a value.
To teach the instructions in a program, press [INST] and select Track/Offset to see the MP
instructions.
How Multi-Pass Functions
The PR[] allows you to offset the entire weld and change tool direction. The RPM[] allows
you to specify the RPM buffer to use.
In order to use the multi-pass offset in the program header, you must use PR[99]. When a
MP OFFSET instruction sees PR[99], it looks at the program header for offset data and
ignores the actual position register. The actual data in PR[99], if any, is not used at all. Refer
to Procedure 1-10 .
Similar to MP OFFSET PR[99] RPM[...], you must use Arc Start [99] and Weave [99] in
order to use the weld and weave schedules specified in the program header. Multi-Pass
offsets can be used with and without the RPM feature. If you do not want to use the RPM
data and want to just apply the multi-pass offsets, use MP OFFSET PR[99] RPM[99].
The MP OFFSET instructions also perform adaptive welding, Multi-Pass.
1-68
1.7.3
Programming
In order to perform multi-pass adaptive welding using the enhanced MP and RPM
instructions and the data in the program header instead of the global schedules, you must
adhere to the programming method described in this section. This programming method is
intended to reduce the maintenance burden on the programmer and to improve the ease of
programming.
In complex parts that require multiple large welds on different joint types, it is required to
switch from weld to weld between passes. This allows for cooling of welds between passes,
minimizes thermal distortion, and increases overall productivity.
For multi-pass welding, you must use one teach pendant program per weld. The nominal
weld and weave schedules and multi-pass offsets for all passes of the weld must be input in
the program header. Refer to Procedure 1-10 .
You must create a top-level program that CALLs the weld program to weld a pass. The
calling program must specify as parameters the pass number to be welded and the direction
of the pass. For example, see the complex part shown in Figure 1-32 .
For the purpose of explanation, assume that there are three joints, a fillet, a V-groove, and a
lap joint to be welded on the part at the locations shown, all of which require multi-pass
welding. Before programming, you must determine the number of passes for each of these
welds and the sequence in which you want to weld these joints. Then create a part program
as shown in Figure 1-33 .
1-69
A-83971
In this example, the part program CALLs the weld teach pendant program WELD01.TP and
passes two parameters, the pass number and direction. You can change the sequence by
editing the teach pendant program. The pass number must be within the number of passes
defined for the corresponding weld, as set in the WELD.TP program header. The direction
can be either 0 or 1, 0 meaning normal direction and 1 meaning the reverse direction. The
root pass must always be in the normal direction and the subsequent passes can be either in
the normal or reverse directions.
An example of the WELD.TP program is shown in Example 1-13 . All of the teach pendant
instructions and positional data, as well as the process data, for performing all of the passes
are contained within this teach pendant program.
Note R[1] is the pass number. R[2] is the direction. If R[2] = 0, direction is forward. If R[2]
= 1, direction is backward.
Example 1-13. WELD.TP
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:L
1-70
R[1]=AR[1]
R[2]=AR[2]
IF R[2]=1, JMP LBL[3]
IF R[1]>1, JMP LBL[2]
SENSOR SEARCH START PR[3]
SENSOR SEARCH POINT[3]
SENSOR SEARCH END
! ROOT PASS
Track SENSOR[3] RPM[3]
PR[3] 20mm/sec FINE
A-83971
1.8
ADAPTIVE WELDING
This section explains how adaptive welding is accomplished during the root pass and
subsequent passes in multi-pass welding using a Karel program. You must set up all the data
required for multi-pass adaptive welding as explained in Section 1.5 . The actual adaptive
algorithm is implemented in a KAREL program as explained in this section and must be
translated into a .PC file and loaded on the controller. This .PC file must be selected as the
adaptive algorithm in the WELD.TP program.
During the root pass, the joint geometry data obtained from the servo robot sensor is input to
the Karel program which must determine the new weld and weave parameters and write them
to appropriate system variables. The adaptive software on the controller reads the system
variables and applies the changes to the weld power supply and robot motion to adapt the
weld and weave parameters respectively. In case of multi-pass welding, during the root pass,
the geometry data is stored in the specified RPM buffer. During subsequent passes the data
from the RPM buffer is input to the KAREL program, which again determines the required
changes to weld and weave schedules.
The input to and output from the KAREL program is handled via system variables as shown
in the following diagram.
1-72
The KAREL program adtask is always running on the controller. As shown in the above
diagram, when $SRAD_IN.$RDY_FLAG is true , the Karel task calls the adaptive
algorithm program selected in the program header. The name of the algorithm file is copied
to $AD_WELD.$ALGO_NAME when the PART.TP program calls the WELD.TP
program. In addition, all the data in the program header is copied to the following system
variables. These variables can accessed and used by the adaptive algorithm. Table 1-11 lists
and describes the Adaptive Welding System variables.
Table 1-11. Multi-Pass System Variables
SYSTEM VARIABLE
DEFINITION
$MP_WELD.$NUM_PASSES
$MP_WELD.$LAST_PASS
$MP_WELD.$CUR_PASS
$MP_PASS.$WELD_SCH
$MP_PASS.$RUNIN_SCH
$MP_PASS.$BBACK_SCH
$MP_PASS.$CFILL_SCH
$MP_PASS.$WV_SCH$
$MP_PASS.OFST
$AD_WELD.$JNT_TYPE
$AD_WELD.$ALGO_NAME.
$AD_WELD.$MIN_WD_SCH
$AD_WELD.$MAX_WD_SCH
$AD_WELD.$MIN_WV_SCH
$AD_WELD.$MAX_WV_SCH
$AD_JOINT.$GAP.$NOMINAL
$AD_JOINT$GAP.$MIN_VAL
$AD_JOINT$GAP.$MAX_VAL
A-83971
$AD_PASS.$CP1
$AD_PASS.$CP2
$AD_PASS.$CP3
The system variables described in Table 1-11 can be used in the adaptive algorithm in
conjunction with the sensor data obtained from $SRAD_IN to calculate the new weld and
weave parameters.
In Example 1-14 , a template algorithm called buttalgo.kl , for butt joint is shown. The
program provides a simple example of an adaptive algorithm. The buttalgo.kl program will
copy the listed system variables to several local variables at the beginning. In the adaptive
algorithm section of the program , the program uses only gap among the sensor data and
adapts only travel speed among the weld parameters and adapts all the weave parameters amplitude, frequency, right dwell and left dwell. Notice that different pass specific constants
(cp1 and cp2) are used in different ranges of the gap variable for adapting weave amplitude.
The robot speed is changed linearly with the gap, assuming the nominal speed corresponds to
the nominal gap. The weave frequency is changes as the speed changes. The dwell times are
changed with the speed as well. At the bottom of the program the weld and weave parameters
calculated are set in the system variable $SRAD_OUT.
The KAREL program shown in Example 1-14 serves only as an example and you should
develop and use an adaptive algorithm that is suitable to your process. The program should
follow the structure shown in the example and must be error free for successful adaptive
welding.
1-74
-------------------------------------------------------------------PROGRAM buttalgo
-------------------------------------------------------------------%COMMENT='Algorithm for Butt Joints'
%SYSTEM
%NOABORT = ERROR + COMMAND
%NOPAUSE = ERROR + COMMAND + TPENABLE
%NOBUSYLAMP
%NOLOCKGROUP
%ENVIRONMENT srdef
%ENVIRONMENT madef
%INCLUDE klevccdf
VAR
-- measured variables (sensor output)
gap: REAL
-- weld parameters (from program header)
nom_speed, min_speed, max_speed: REAL
-- weave parameters (from program header)
-- nominal values may change for each pass
-- min and max remain the same for all passes
nom_ampl, min_ampl, max_ampl : REAL
nom_freq, min_freq, max_freq : REAL
nom_ldwl, min_ldwl, max_ldwl : REAL
nom_rdwl, min_rdwl, max_rdwl : REAL
-- joint parameters (from program header)
nom_gap, min_gap, max_gap: REAL
-- constants (from program header)
-- c1, c2, c3 remain the same for all passes
-- cp1, cp2 and cp3 may change for each pass
c1, c2, c3 : REAL
cp1, cp2, cp3 : REAL
-- Output variables
speed : REAL
ampl : REAL
freq : REAL
ldwl : REAL
rdwl : REAL
-- other variables
-----------------------------------------BEGIN -- Begin buttalgo
-- This routine executes the adaptive algorithm
-- Read $SRAD_IN and fill out $SRAD_OUT
-- Header data can be accessed from $MP_WELD, $MP_PASS
-- $AD_WELD, $AD_JOINT, $AD_CONST and $AD_PASS
-- read the header data from system variables
1-75
A-83971
nom_speed = $MP_PASS.$WELD_SCH.$WSPEED
min_speed = $AD_WELD.$MIN_WD_SCH.$WSPEED
max_speed = $AD_WELD.$MAX_WD_SCH.$WSPEED
nom_ampl = $MP_PASS.$WV_SCH.$AMPLITUDE
min_ampl = $AD_WELD.$MIN_WV_SCH.$AMPLITUDE
max_ampl = $AD_WELD.$MAX_WV_SCH.$AMPLITUDE
nom_freq = $MP_PASS.$WV_SCH.$FREQUENCY
min_freq = $AD_WELD.$MIN_WV_SCH.$FREQUENCY
max_freq = $AD_WELD.$MAX_WV_SCH.$FREQUENCY
nom_ldwl = $MP_PASS.$WV_SCH.$DWELL_LEFT
min_ldwl = $AD_WELD.$MIN_WV_SCH.$DWELL_LEFT
max_ldwl = $AD_WELD.$MAX_WV_SCH.$DWELL_LEFT
nom_rdwl = $MP_PASS.$WV_SCH.$DWELL_RIGHT
min_rdwl = $AD_WELD.$MIN_WV_SCH.$DWELL_RIGHT
max_rdwl = $AD_WELD.$MAX_WV_SCH.$DWELL_RIGHT
nom_gap = $AD_JOINT.$GAP.$NOMINAL
min_gap = $AD_JOINT.$GAP.$MIN_VAL
max_gap = $AD_JOINT.$GAP.$MAX_VAL
c1 = $AD_CONST.$C1.$VALUE
c2 = $AD_CONST.$C2.$VALUE
c3 = $AD_CONST.$C3.$VALUE
cp1 = $AD_PASS.$CP1
cp2 = $AD_PASS.$CP2
cp3 = $AD_PASS.$CP2
-- read sensor input from $SRAD_IN
gap = $SRAD_IN.$GAP
-- set the other variables
-- adaptive algorithm
IF ( gap < min_gap ) THEN
ampl = min_ampl -- set wv amplitude to minimum
freq = max_freq -- set wv frequency to maximum
speed = max_speed -- set weld speed to maximum
ENDIF
IF ((gap >= min_gap) AND (gap < nom_gap)) THEN
-- set the weave amplitude to half the gap
-- minus a constant to not hit the walls
-- Note: The constant for amplitude change can be different for
each pass
ampl = (gap/2) - cp1
-- increase the speed proportional to the gap
speed = nom_speed * (1 + (nom_gap - gap) * c1)
-- Change frequency proportional speed
freq = nom_freq * speed / nom_speed
ENDIF
IF ((gap >= nom_gap) AND (gap < max_gap)) THEN
-- set the weave amplitude to a half the gap
1-76
1-77
1.9
A-83971
1.9.1
Setup
The following setup is necessary for using the application instruction. Set the first register's
number to be used in register 32 (R[32]). Seven consecutive registers starting from the
number in register 32 are used. Data should be set for each application in these registers.
Content of register
If register 32 has a value of N, the following registers (R[N] ... R[N+6]) have special
meaning for Sensor applications.
R[N] = 1 - Application enabled. R[N] = 0 - Application disabled.
R[N+1] = 1 -Enables a test message display on the user screen that describes how each
register R[N] to R[N+6] are being used. R[N+1] = 0 - Disable the display.
R[N+2] - This register contains the index of position register for the calculated data. An
example of this would be if R[N+2] = M , then:
PR[M] Holds calculated data for the offsets. PR[M+1] Holds searched data. PR[M+2]
- Holds searched data PR[M+3] - Holds searched data PR[M+4] - Holds searched data
* The number of the position registers PR[M+1]... used for each application is different.
Note: The position registers PR[M+1]... are used in the search start instructions in your
teach pendant program.
R[N+3] - Holds abnormal output of application program. If it is equal to 1, it indicates a
normal output was produced by the application. If it is equal to 0, it indicates an
abnormal output was produced by the application
R [N+4] - This register is used differently for each application.
R[N+5] - This register is used differently for each application.
R[N+6] - This register is used differently for each application.
1.9.2
MIG_CRS
In MIG_CRS instruction, five position registers are used, including the position register to
output calculated data. This application calculates the intersection of two straight lines and
then saves the calculated position in a position register. Two points on each straight line will
be searched and recorded in the position register. See Figure 1-35 .
1-78
Example Program
1: J P[1] 100% Fine
2: J P[2] 100% Fine
3: SENSOR SEARCH START
4: SENSOR SEARCH POINT
5: SENSOR SEARCH END
6: J P[3] 100% Fine
7: SENSOR SEARCH START
8: SENSOR SEARCH POINT
9: SENSOR SEARCH END
10: J P[4] 100% Fine
11: SENSOR SEARCH START
12: SENSOR SEARCH POINT
13: SENSOR SEARCH END
14: J P[5] 100% Fine
15: SENSOR SEARCH START
PR[2]
[1]
PR[3]
[1]
PR[4]
[1]
PR[5]
1-79
A-83971
1.9.3
MIG_CRS2
In MIG_CRS2 instruction, four position registers are used, including the position register to
output calculated data. This application calculates the projection of a point on a straight line.
The first searches made by this application will determine the coordinates of a straight line
and based on that, MIG_CRS2 will project a third search point on the straight line, and
calculate the coordinates of that point. See Figure 1-36 .
1-80
Example Program
1: J P[1] 100% Fine
2: J P[2] 100% Fine
3: SENSOR SEARCH START PR[2]
4: SENSOR SEARCH POINT [1]
5: SENSOR SEARCH END
6: J P[3] 100% Fine
7: SENSOR SEARCH START PR[3]
8: SENSOR SEARCH POINT [1]
9: SENSOR SEARCH END
10: J P[4] 100% Fine
11: SENSOR SEARCH START PR[4]
12: SENSOR SEARCH POINT [1]
13: SENSOR SEARCH END
14: R[32] = 11
15: R[11] = 1
16: R[12] = 0
17: R[13] = 1
18: R[14] = 0
19: R[15] = 1
20: CALL MIG_CRS2
21: IF R[14] = 0 JUMP LBL[99]
22: J PR[1] 100% Fine
23: LBL[99]
1.9.4
MIG_VECTOR
In MIG_VECTOR instruction, three position registers are used, including the position
register to output calculated data. This instruction calculates a point at a specified distance
along a searched direction. The first two search points give the direction, and R[n+4 ] gives
the distance from the first search point along the direction of the search. See Figure 1-37 .
1-81
A-83971
Example Program
1: J P[1] 100% Fine
2: J P[2] 100% Fine
3: SENSOR SEARCH START PR[2]
4: SENSOR SEARCH POINT [1]
5: SENSOR SEARCH END
6: J P[3] 100% Fine
7: SENSOR SEARCH START PR[3]
8: SENSOR SEARCH POINT [1]
9: SENSOR SEARCH END
10: R[32] = 11
11: R[11] = 1
12: R[12] = 0
13: R[13] = 1
14: R[14] = 0
15: R[15] = 50
16: CALL MIG_VECTOR
17: IF R[14] = 0 JUMP LBL[99]
18: J PR[1] 100% Fine
19: LBL[99]
1-82
1.9.5
MIG_CIRCLE
In MIG_CIRCLE instruction, five position registers are used, including the position register
to output calculated data. This instruction calculates the center of the circle with three of four
searched points on the circle arc. See Figure 1-38 .
1-83
A-83971
Example Program
1: J P[1] 100% Fine
2: J P[2] 100% Fine
3: SENSOR SEARCH START PR[2]
4: SENSOR SEARCH POINT [1]
5: SENSOR SEARCH END
6: J P[3] 100% Fine
7: SENSOR SEARCH START PR[3]
8: SENSOR SEARCH POINT [1]
9: SENSOR SEARCH END
10: J P[4] 100% Fine
11: SENSOR SEARCH START PR[4]
12: SENSOR SEARCH POINT [1]
13: SENSOR SEARCH END
14: J P[5] 100% Fine
15: SENSOR SEARCH START PR[5]
16: SENSOR SEARCH POINT [1]
17: SENSOR SEARCH END
18: R[32] = 11
19: R[11] = 1
20: R[12] = 0
21: R[13] = 1
22: R[14] = 0
23: R[15] = 2
24: R[16] = 5
25: CALL MIG_CIRCLE
26: IF R[14] = 0 JUMP LBL[99]
27: J PR[1] 100% Fine
28: LBL[99]
1.9.6
MIG_FRAME
In MIG_FRAME instruction, five or six position registers are used, including the position
register to output calculated data. This application calculates a coordinate frame from three
or four search points. See Figure 1-39 .
1-84
Set registers R[N], R[N+1], R[N+2], and R[N+3] as described in Section 1.9.1 .
PR[M] : Calculated data
PR[M+1] : Search point 1
PR[M+2] : Search point 2
PR[M+3] : Search point 3
PR[M+4] : Search point 4 (when R[N+4] =2. See below.)
PR[M+5] : Nominal value storage
Register R[N+4] is used to control the method applied to calculating the frame.
When R[N+4]=1, the Frame is calculated from three searches using the KAREL
FRAME instruction. When R[N+4]=2, the Frame is calculated from four searches
using the MIG_CRS method. Refer to Section 1.9.2 for search position requirements.
When R[N+4]=3, the Frame is calculated from three searches using the MIG_CRS2
method. Refer to Section 1.9.3 for search position requirements.
Register R[N+5] contains the calculation error (in minutes).
Register R[N+6] indicates if a nominal frame value is to be stored in Position Register
PR[M+5].
A-83971
Example Program
1: UF = 1
2: J P[1] 100% Fine
3: J P[2] 100% Fine
4: SENSOR SEARCH START PR[2]
5: SENSOR SEARCH POINT [1]
6: SENSOR SEARCH END
7: J P[3] 100% Fine
8: SENSOR SEARCH START PR[3]
9: SENSOR SEARCH POINT [1]
10: SENSOR SEARCH END
11: J P[4] 100% Fine
12: SENSOR SEARCH START PR[4]
13: SENSOR SEARCH POINT [1]
14: SENSOR SEARCH END
15: J P[5] 100% Fine
16: SENSOR SEARCH START PR[5]
17: SENSOR SEARCH POINT [1]
18: SENSOR SEARCH END
19: R[32] = 11
20: R[11] = 1
21: R[12] = 0
22: R[13] = 1
23: R[14] = 0
24: R[15] = 2
25: R[16] = 30
26: R[17] = 0
27: CALL MIG_FRAME
28: IF R[14] = 0 JUMP LBL[99]
29: UFRAME[2] = PR[1]
30: UFRAME_NUM = 2
31: J P[6] 100% Fine
32: LBL[99]
1.9.7
Sample Applications
This section contains sample applications.
MIG_CROSS and MIG_VECTOR Application
Four points 1, 2, 3, and 4 are searched for by using MIG_CROSS and MIG_VECTOR. Then,
welding of a desired length can be performed from point A toward point B. See Figure 1-40 .
1-86
In the sample program shown in Example 1-20 , calculated positions A and B are indicated in
lines 38 and 39.
Example 1-20. MIG_CROSS and MIG_VECTOR Sample Program
Example Program
1: J P[1] 100% FINE
2: J P[2] 100% FINE
3: SENSOR SEARCH START PR[2]
4: SENSOR SEARCH POINT [1] LBL[99]
5: SENSOR SEARCH END
6: J P[3] 100% FINE
7: SENSOR SEARCH START PR[3]
8: SENSOR SEARCH POINT [2] LBL[99]
9: SENSOR SEARCH END
10: J P[4] 100% FINE
11: SENSOR SEARCH START PR[4]
12: SENSOR SEARCH POINT [3] LBL[99]
13: SENSOR SEARCH END
14: J P[5] 100% FINE
15: SENSOR SEARCH START PR[5]
16: SENSOR SEARCH POINT [4] LBL[99]
17: SENSOR SEARCH END
18: R[32] = 11
19: R[11] = 1
20: R[12] = 0
21: R[13] = 1
22: R[14] = 0
23: R[15] = 1
24: R[17] = 1
25: CALL MIG_CRS
26: IF R[14] = 0 JUMP LBL[99]
27: R[32] = 21
28: R[21] = 1
29: R[22] = 0
30: R[23] = 7
1-87
A-83971
31: R[24] = 0
32: R[25] = 50
33: PR[8] = PR[1]
34: PR[9] = PR[5]
35: CALL MIG_VECTOR
36: IF R[24] = 0 JUMP LBL[99]
37: J P[6] 100% FINE
38: J PR[1:A] 100% FINE
39: J PR[7:B] 100% FINE
40: J P[7] 100% FINE
41: LBL[99]
[End]
In the sample program shown in Example 1-21 through Figure 1-43 , points A to E are
specified on lines 31 to 35.
1-88
Example Program
1: UFRAME_NUM = 1
2: J P[1] 100% FINE
3: J P[2] 100% FINE
4: SENSOR SEARCH START PR[2]
5: SENSOR SEARCH POINT [1] LBL[99]
6: SENSOR SEARCH END
7: J P[3] 100% FINE
8: SENSOR SEARCH START PR[3]
9: SENSOR SEARCH POINT [2] LBL[99]
10: SENSOR SEARCH END
11: J P[4] 100% FINE
12: SENSOR SEARCH START PR[4]
13: SENSOR SEARCH POINT [3] LBL[99]
14: SENSOR SEARCH END
15: J P[5] 100% FINE
16: SENSOR SEARCH START PR[5]
17: SENSOR SEARCH POINT [4] LBL[99]
18: SENSOR SEARCH END
19: R[32] = 11
20: R[11] = 1
21: R[12] = 0
22: R[13] = 1
23: R[14] = 0
24: R[15] = 2
25: R[16] = 30
26: R[17] = 0
27: CALL MIG_FRAME
28: IF R[14] = 0 JUMP LBL[99]
29: UFRAME[2] = PR[1]
30: UFRAME_NUM = 2
31: L P[6:A] 10mm/sec FINE
32: L P[7:B] 10mm/sec FINE
33: L P[8:C] 10mm/sec FINE
34: L P[9:D] 10mm/sec FINE
35: L P[10:E] 10mm/sec FINE
36: UFRAME_NUM = 1
37: J P[11] 100% FINE
38: J P[12] 100% FINE
39: LBL[99]
[End]
1-89
Example Program
1: R[1]=AR[1]
2: R[2]=AR[2]
3: IF R[2]=1,JMP LBL[3]
4:
5: IF R[1]>1,JMP LBL[2]
6: ! ROOT PASS
7: SENSOR SEARCH START PR[3]
8: SENSOR SEARCH POINT[3]
9: SENSOR SEARCH END
10:
11: Track SENSOR[3] RPM[3]
12: L PR[3] 20mm/sec FINE
: Arc Start[99]
13: Weave Sine[99]
14: L P[4] WELD_SPEED FINE
: Arc End[99]
15: Weave End
16: Track End
17: J P[5] 10% FINE
18: END
19:
20: LBL[2:OTHER PASSES]
21: MP Offset PR[99] RPM[3]
22: J PR[3] 10% FINE
: Arc Start[99]
23: Weave Sine[99]
24: L P[4] WELD_SPEED FINE
: Arc End[99]
25: Weave End
26: MP Offset End
27: J P[5] 10% FINE
28: END
29:
30:
31: LBL[3:REVERSE PASSES]
32: LOCK PREG
33:J P[5] 10% FINE
34: MP Offset PR[99] RPM[3]
35:L P[4] 200mm/sec FINE
: Arc Start[99]
36: Weave Sine[99]
37:L PR[3] WELD_SPEED FINE
: Arc End[99]
1-90
A-83971
1-91
1-92
A-83971
Chapter 2
ADAPTIVE WELDING WITH OTHER SEAM
TRACKING SENSORS
2.1
Overview
It is possible to connect other sensors than Servo Robot to the FANUC controller for the
operation of seam finding/seam tracking.
Please contact your local FANUC representative to be informed on currently supported
sensors.
2.1.1
Limitations
Same limitations as described in Section 1.1.1 apply when using another sensor than
Servo-Robot.
Function provided by Servo-Robot may not be available with other Sensors (i.e. Break
points information).
2.2
2.2.1
Communication Connection
Depending on the sensor you are using you may choose one of the following procedure to
setup the communication between camera controller and FANUC controller.
For RS-232C refer to Section 1.2.4.1 RS-232C Communication
For Ethernet refer to Section 1.2.4.2 Ethernet Communication
2-93
2.3
Sensor Setup
From now on please refer to section 1.3 SENSOR SETUP for the next steps.
Same calibration procedure can be used whatever the sensor you are using.
Setup and programming are working in the same way as described in Chapter 1.
2-94
A-83971