Touchabb2 PDF
Touchabb2 PDF
Touchabb2 PDF
SmarTac/PIB
503 497-502 Standard version/S4Cplus
2001-03-06
Mounting in the robot control cabinet
Framsida
ABB Welding Systems AB is not responsible for damage incurred by the use of this document or
software or hardware described in this document.
The document, or parts there of, may not be reproduced or copied without prior permission from
ABBWelding Systems AB. It may neither be imparted to another nor otherwise used without
authorization. Infringement here of will be subject to action in accordance with applicable laws.
Further copies of this document can be obtained from ABB Welding Systems AB at current prices.
Date: 2001-03-06
S-695 82 Laxå
Sweden
SmarTac
LIST OF CONTENTS
Page
1 Introduction ................................................................................................................. 5
1.1 Product Overview .............................................................................................. 5
1.2 Operation Overview........................................................................................... 5
1.3 Requirements Overview .................................................................................... 5
1.4 Precautions! ....................................................................................................... 6
3 Installation ................................................................................................................... 11
3.1 Components List ................................................................................................ 11
3.2 Tools Required ................................................................................................... 11
3.3 Hardware set-up ................................................................................................. 11
3.4 Software set-up .................................................................................................. 11
4 Applications Guide...................................................................................................... 13
4.1 Searching Conditions ......................................................................................... 13
4.2 Programming Limitations .................................................................................. 13
4.3 Signals and Connections .................................................................................... 13
5 User’s Guide................................................................................................................. 15
5.1 Safety ................................................................................................................. 15
5.2 Introduction........................................................................................................ 15
5.3 What is a Frame? ............................................................................................... 16
5.4 Using SmarTac to modify a Displacement Frame. ............................................ 23
5.5 Using SmarTac for Multi-Dimensional Searching. ........................................... 30
5.6 Using SmarTac to Determine Simple Rotational Changes. ............................... 35
5.7 Using SmarTac with Work Object Manipulation............................................... 38
5.8 Search_Part. ....................................................................................................... 44
5.9 Conclusion ......................................................................................................... 45
6 Software Reference...................................................................................................... 47
6.1 Instructions......................................................................................................... 47
503 497-502 3
SmarTac
7 Electrical Reference..................................................................................................... 63
8 Warranty ...................................................................................................................... 65
9 Contacts ........................................................................................................................ 67
10 Glossary ........................................................................................................................ 69
4 503 497-502
SmarTac
Introduction
1 Introduction
503 497-502 5
SmarTac
Introduction
1.4 Precautions!
The power supply must always be switched off whenever work is carried out in the
control cabinet.
Circuit boards - printed circuit boards and components - must never be handled
without Electro-Static-Discharge (ESD) protection in order not to damage them.
Use the wrist strap located on the inside of the controller door.
All personnel working with the robot system must be very familiar with the
safety regulations outlined in the chapter on Safety in the robot controller
User's Guide. Incorrect operation can damage the robot or injure someone
6 503 497-502
SmarTac
Technical description
2 Technical description
2.1 General
SmarTac/PIB is a further devel-
opment of the ABB joint search
device SmarTac. Mechanically
and electrically it is integrated
with the ABB welding interface
PIB (Process Interface Board).
The unit has two sensor inputs,
smartac
which can be activated one at a
time or simultaneously.
Figure 1
The unit is a so-called "Add-on"
unit and is connected to the PIB
by way of a 32-pole connector
of the Euro type, see Figure 1.
smartac-pub
)LJXUH
503 497-502 7
SmarTac
Technical description
2.2 Sensors
In the welding system A314/A324 containing PIB, the input for sensor 1 is con-
nected to the gas cup of the welding gun, whereas sensor input 2 is connected to
the welding nozzle for searching by way of the welding wire.
Using sensor 2 it is usually necessary to disconnect the welding circuit to avoid
current divertion through the power source resulting in too low search voltage.
Searching with sensor 2 is only used for special applications.
8 503 497-502
SmarTac
Technical description
If the present search voltage is higher than the Voltage Valid Limit, the message
diSe_Valid=1 will be sent from the PIB to the robot giving the robot the signal for
carrying on the search.
Detection
When during the search the gas cup gets into contact with the search object the
sensor input is exposed to voltage drop.
If the voltage drops below the trigger level the PIB will send the search stop mes-
sage diSE1_DET=1 to the robot, and the co-ordinates of the search object can be
registered.
2.4 Delivery
SmarTac is delivered as SmarTac complete, article no. 503500-880, consisting of:
- SmarTac unit
- Software, contained in the system diskette when a complete system is
delivered, and in a separate diskette when SmarTac is delivered sepa-
rately
- User’s Guide with program description and examples.
Mechanical Data
Weight: 0.220 kg
Dimensions: 22x65x185 mm (see Figure 3)
Enclosure class: IP 20.
Electrical Data:
Max. serach voltage: 40V
Max. search current: 4.3 mA.
Environmental data: See point 6.16.3
503 497-502 9
SmarTac
Technical description
185 mm
65
53
Delivery data Product number Version number
ABB
xxxxxxx-xxxx
xxxxxxx xxxxxx
22
503400A1
15
Figure 3
10 503 497-502
SmarTac
Installation
3 Installation
3. Install the SmarTac “Add on” unit on the PIB, see Figure 2.
3.4.1 Compatibility
This SmarTac version is intended for use in arc welding systems incorporating IRB
140,1400, 2400, etc. robots.
BaseWare requirements: 4.0 or higher.
Controller requirements: S4Cplus
The SmarTac package includes one system module that is loaded in the foreground
task of the controller. The module, SmarTac.sys, is a stand-alone, read-only, no-
step-in, module. Consequently, it is compatible with any RAPID program, assum-
ing the I/O configuration is non-conflicting
503 497-502 11
SmarTac
Installation
1. The software will be loaded together with the robot aw configuration option
“3HEA 50385088”.
12 503 497-502
SmarTac
Applications Guide
4 Applications Guide
503 497-502 13
SmarTac
Applications Guide
6,*1$/6($5&+,1,76($5&+67$57&217$&7:3$576($5&+(1'
'R6(B6(/
LISUHVHQW
GL6(B'(7
GL6(B9$/,'
GR6(B5()
14 503 497-502
SmarTac
User’s Guide
5 User’s Guide
5.1 Safety
Failure to follow safety guidelines presented throughout this manual can
result in property damage, serious injury, or death!
Consequently, the control cabinet door(s) should always be closed when the con-
trol cabinet is turned on. Only qualified technicians should ever attempt trouble
shooting.
The SmarTac sensing voltage applied at the torch when searching is supplied by a
40VDC, low current source. This sensing current is harmless.
The programmer must take all safety precautions presented in the Robot Control-
ler’s User’s Guide while operating the robotic system.
5.2 Introduction
The SmarTac system available from ABB Flexible automation, is a very versatile
tool for accurately locating weld seams. The system module, SmarTac.sys,
included in the package, contains useful search instructions that simplify the pro-
gramming. The module also includes mathematical functions that are useful in
advanced searching techniques. All of these are discussed in this section.
Before tactile searching can be used effectively, you need to be able to answer
these questions:
2. What is a frame?
A good understanding of work objects and displacement frames is the key to suc-
cessful programming with SmarTac searching. This guide will start with a discus-
sion of these important elements. As the programming examples in the guide
become more complex, this topic will be further elaborated on.
3. What are the RAPID instructions and how are they used to manipulate my
weld routines?
503 497-502 15
SmarTac
User’s Guide
In this guide we will look at several search techniques and the instructions
required. Detailed examples will be provided for each of these. Plus the appendi-
ces, SmarTac Instructions and SmarTac Functions, provide detailed explanations
of the instructions and functions included with the SmarTac software.
Figure 4.
16 503 497-502
SmarTac
User’s Guide
In the figure above, if any of the frames are changed, the relationship of the TCP to
the robtarget changes. If the user frame of the work object is changed by 10mm in
‘X’, in relation to the World frame, then the robtarget will move 10mm in ‘X’, in
relation to the World frame. If the program displacement is changed by 10mm in
‘X’, in relation to the object frame, then the robtarget will move 10mm in ‘X’, in
relation to the object frame.
1. Create a new program module to work in. Call it “ST_TEST”. Consult the
Controller User’s Guide if you need help.
3. If not already done, define the tool using the five point method or Bullseye.
Call the tool “tWeldGun”. Consult the Controller User’s Guide, or Bullseye
manual if you need help.
Tip: To make programming easier you may want to add in these commands into
one of your “Most Common” pick lists:
PDispAdd
PDispOff
PDispSet
Search_1D
Search_Groove
Search_Part
4. Tape a piece of paper to a table, or similar surface, within the robot’s reach.
On the paper draw a rectangle. (Perfection is not required here.)
5. View the modules, select the new module, “ST_TEST”, and select the new
routine, “disp_ex1”.
503 497-502 17
SmarTac
User’s Guide
6. Jog the robot so that the torch is pointing at the rectangle you drew. The tip
of the torch should be a few inches above the rectangle. Create a MoveJ at
this point using tWeldGun and no work object selected:
7. Now insert the instruction, PDispSet. This is a RAPID command that will
be found on one of the standard instruction pick-lists. Here, you will see
that we used a custom “Most Common” pick-list. The PDispSet instruction
requires one argument: a Displacement Frame. When prompted for this
data, select new… and create a new pose data type called “peEX1”:
8. Now jog the robot down to the rectangle so that the tip is just above one of
the rectangle corners. Create a MoveL at this position using tWeldGun and
no work object selected.
9. Do the same for the rest of the corners, returning to the first corner, so that
you have a short program that traces out the rectangle:
18 503 497-502
SmarTac
User’s Guide
11. Jog the robot away from the rectangle a few inches and insert a final
MoveL:
12. Execute this routine from the beginning in manual mode to be sure the
program works correctly. The path should look something like this:
503 497-502 19
SmarTac
User’s Guide
This routine executes a simple movement path. Each of the robtargets in the
MoveL instructions is related to the World frame through the chain of frames dis-
cussed earlier. In this case, however, the work object has not been specified, so
wobj0 is used by default. This work object is the same as the world frame.
13. Take a look at the values in wobj0 by selecting View and “Data Types”.
Then choose wobjdata off the list. The list of work objects defined in the
system is shown:
14. Highlight wobj0 and hit enter. The following will be visible:
20 503 497-502
SmarTac
User’s Guide
Cursor down and look at the data that is present. Note that a work object has two
frames, the user frame, uframe, and the object frame, oframe. Also note that the
values are all zero for the locations, and ones and zeros for the orientations. That’s
why the work object has no affect on our program. It is the same as the World
frame.
The only other frame that can change the robtarget positions in our “rectangle”
routine, is the Displacement Frame.
15. Hit “Cancel” to get out of the work object window. Then hit “test” to
return to the test screen.
16. Move the cursor to the PDispSet instruction, and over to the argument,
peEX1. Only peEX1 should be highlighted.
503 497-502 21
SmarTac
User’s Guide
A screen will appear showing the values present in this data type, pose. (Note: This
feature works for all data types.) X, Y, and Z will all be zero. This displacement
frame did not alter the rectangle program at all.
18. Move the cursor to the Y value and change the number to 15:
22 503 497-502
SmarTac
User’s Guide
Figure 5.
503 497-502 23
SmarTac
User’s Guide
Figure 6.
The StartPoint and SearchPoint are programmed. The two points determine the
direction of the search. The SearchPoint is programmed so the torch is touching
the part feature. The Result is the difference between the programmed SearchPoint,
and the actual SearchStop that is found when a different part is present.
Figure 7.
24 503 497-502
SmarTac
User’s Guide
2. Highlight “disp_ex1” and hit the key marked Dupl… at the bottom of the
teach pendant screen. The controller will offer the default routine name,
“disp_ex2”. Accept this, then look at the instructions in the new routine:
4. Place a metal plate on the table so that a portion of the plate is overhanging:
6. Move the Program Pointer to the new routine and toggle the Program Win-
dow to test mode.
503 497-502 25
SmarTac
User’s Guide
7. Step through the rectangle program and modify each of the points so that
they correspond to each of the plate’s corners.
8. Continue to step though the routine until the Program Pointer loops back to
the beginning.
10. Move the cursor to the first line, MoveJ. Using the Copy and Paste keys at
the bottom of the screen, copy the MoveJ and paste it right below it:
Between the two MoveJ instructions we will be adding more moves and a search
instruction. The search will collect information about the location of the plate, and
store the information in peEX1. Our plate-tracing movements will then be shifted
accordingly.
11. Jog the robot torch so that it is above and past the edge of the plate. Insert
a MoveL instruction for this location between the two MoveJ instructions.
26 503 497-502
SmarTac
User’s Guide
Figure 9.
12. Insert the instruction, Search_1D, after the MoveL. (If no “Most Com-
mon” pick-list was created, use ProcCall to find the instruction. When
prompted for data, use this data:
Search_1D peEX1,*,*,v200,tWeldGun;
The routine should look like this:
13. Jog the robot to the SearchPoint and “ModPos” the second robtarget in
the Search_1D instruction. The gas cup should make contact with the
plate without deflecting the torch.
14. Jog the robot to the StartPoint and “ModPos” the first robtarget in the
Search_1D instruction.
503 497-502 27
SmarTac
User’s Guide
Figure 10.
15. Toggle the Program Window to the test mode and move the Program
Pointer to the Search_1D instruction.
16. Enable the robot and hit the Fwd key. The robot should move to the
StartPoint, then search towards the SearchPoint, until the plate is
detected. (See Figure ex2.c)
17. Toggle the Program Window to instruction mode and using the Copy and
Paste keys, copy the MoveL ahead of the Search_1D and paste it after the
Search_1D. Your final routine, disp_ex2, should look like this:
28 503 497-502
SmarTac
User’s Guide
PROC disp_ex2()
MoveJ *,v200,fine,tWeldGun;
MoveL *,v200,fine,tWeldGun;
Search_1D peEX1,*,*,v200,tWeldGun;
MoveL *,v200,fine,tWeldGun;
MoveJ *,v200,fine,tWeldGun;
PDispSet peEX1;
MoveL *,v200,fine,tWeldGun;
MoveL *,v200,fine,tWeldGun;
MoveL *,v200,fine,tWeldGun;
MoveL *,v200,fine,tWeldGun;
MoveL *,v200,fine,tWeldGun;
PDispOff;
MoveL *,v200,fine,tWeldGun;
ENDPROC
18. Run the routine from the beginning. The torch should search the plate
and then trace out the plate.
19. Move the plate about 10mm away from the SearchPoint and try running
the routine (See Figure ex2.e). If the plate was moved in the direction of
the search, without any rotation, the torch should still trace out the plate
correctly.
Figure 12.
Questions:
1. Look at the data in peEX1. How does it change after searching different
locations?
3. What happens when the search is programmed so that the search direction is
not perpendicular to the plate’s edge?
4. What errors occur when the plate is moved too far away? Experiment with
503 497-502 29
SmarTac
User’s Guide
the error recovery options to see what they do. Consult Section 8.1 “Instruc-
tions” in this manual to see detailed explanations of the error handing capa-
bilities.
1. Remember that the direction of the search dictates the direction that the
resulting program displacement can shift a program.
2. You should almost always search perpendicular to the part feature surface.
The search accuracy will suffer if the search direction is at an angle to the
feature surface.
3. For a newly programmed search try executing the search using the Forward
Step key. When the robot stops motion with the torch touching the part,
move the cursor to the SearchPoint and “mod-pos” the robtarget. This
ensures that a search on a “perfect” part will return a displacement that is
very close to zero.
2. Highlight disp_ex2 and duplicate it. Name the new routine disp_ex3.
30 503 497-502
SmarTac
User’s Guide
5. Move the Program Pointer to the PDispOff instruction near the end of the
routine.
6. Enable the robot and step forward once to execute this instruction.
7. Make sure the robot can move to the first MoveL that traces out the plate,
then move the Program Pointer to this MoveL.
8. Enable the robot and step forward once. Align the plate to the torch tip.
Step though the rest of the points to get the plate back to where it was when
we first wrote the routine.
9. Move the cursor to the top of the routine, enable the robot, and step forward
until the search is complete, and the robot stops at the MoveL immediately
following the Search_1D instruction.
10. Add another MoveL here. Its location should be off the end of the plate. You
are going to add another search to this routine that will search the end of the
plate. This move will provide safe passage.
11. Copy the last Search_1D and insert it after the MoveL created in step #9.
12. Copy the MoveL created in step #9 and insert it after the last Search_1D.
14. Modify the robtargets in the new Search_1D to search the end of the plate.
The new search will be referred to as “search 2”:
503 497-502 31
SmarTac
User’s Guide
Figure 13.
15. Highlight the second Search_1D instruction. And hit the Enter key.
17. Move the cursor down to the optional argument named, [\PrePDisp], and
Add it.
19. Move the cursor to the new argument and hit enter:
32 503 497-502
SmarTac
User’s Guide
20. From the list of available pose data select peEX1. Press OK. The routine
should look like this:
PROC disp_ex3()
MoveJ *,v200,fine,tWeldGun;
MoveL *,v200,fine,tWeldGun;
Search_1D peEX1,*,*,v200,tWeldGun;
MoveL *,v200,fine,tWeldGun;
MoveL *,v200,fine,tWeldGun;
Search_1D peEX1,*,*,v200,tWeldGun\PrePDisp:=peEX1;
MoveL *,v200,fine,tWeldGun;
MoveJ *,v200,fine,tWeldGun;
PDispSet peEX1;
MoveL *,v200,fine,tWeldGun;
MoveL *,v200,fine,tWeldGun;
MoveL *,v200,fine,tWeldGun;
MoveL *,v200,fine,tWeldGun;
MoveL *,v200,fine,tWeldGun;
PDispOff;
MoveL *,v200,fine,tWeldGun;
ENDPROC
21. Jog the torch so that it is above the plate and execute the routine from the
beginning. The torch should trace out the plate.
22. Move the plate about 10mm in any direction and re-execute the routine. The
torch should trace out the plate.
Questions:
2. What happens when this optional argument in the second Search_1D is not
present?
3. Two and three-dimensional searches should almost always use search direc-
503 497-502 33
SmarTac
User’s Guide
5. Add the optional argument, [\NotOff], to the first search instruction. And
execute the program. What does this do? Hint: Look at the Search_1D sec-
tion of section 8.1, “Instructions”.
6. What would happen if the [\NotOff] argument was added to the second
search and the next section of the routine had a welding instruction? Hint:
Look in section 8.1.
7. Version 7.0 only: Why must there always be at least one Move instruction
between two searches? Hint: What happens when SmarTac is activated
while the torch is touching the part?
34 503 497-502
SmarTac
User’s Guide
Figure 14.
9. In Example 1, what happens if you search the same edge twice, using PreP-
Disp to add the second search result to the first?
X’
X P2
displaced
P2
Robtargets shifted
Original robtarget by Program
positions Displacement
P3
P3 displaced
Y’
Y
Shift described by
Program Displacement
Using this same basic concept, it is possible to search a weld seam that moves both
in translation and rotation. Imagine that the robtargets in the above sketch, P2 and
P3, describe the ArcL\On and ArcL\Off of a weld. If each robtarget is represented
by a different Program Displacement then the weld seam can be moved rotation-
ally as well:
503 497-502 35
SmarTac
User’s Guide
X X
Robtargets shifted
Original robtarget by Program
positions Displacements
P2
Y P2 Y
X displaced
X
P3
Y
Y P3 displaced
To do this for a real weld seam, the robtargets, P2 and P3, will have to be searched
separately and the displacement data stored in two different pose data elements.
Example 4 illustrates this technique.
The searches should look similar to those used in Example 2 & 3 (See Figure
ex2.c), but positioned around the plate like this:
36 503 497-502
SmarTac
User’s Guide
Figure 15.
4. Step through the routine to check the positions. If P1 and P2 are out of posi-
tion, you can jog them into position and mod-pos them with the program
displacement turned on.
5. Execute the program from the beginning. And watch the robot trace the
edge of the plate.
6. Move the plate in various directions, including rotationally, and execute the
routine each time. Does the robot torch follow edge each time? If it does
not, there check the program again to be sure all the correct displacement
frames are in the right places.
Questions:
3. When the plate is rotated significantly, do you see any error in the position-
ing of P1 and P2? Why will large rotations of the plate cause some error in
this example?
503 497-502 37
SmarTac
User’s Guide
P1
X
displaced
P2
X (reference) displaced
RefP1
RefP2
Y (reference)
X
X (reference)
RefP1 X
RefP2
Y P2
displaced
Reference work Y
P1
object displaced
New work object
RefP3
P3
displaced
Y (reference)
Y
In this image, robtargets P1, P2, and P3 all move with the work object. In addition,
P1 moves with a program displacement frame relative to that work object.
The SmarTac module contains two mathematical functions that can be used in con-
junction with the Search_1D instruction to make this searching technique easier.
38 503 497-502
SmarTac
User’s Guide
Figure 16.
Refer to this sketch when laying out the points for this exercise:
503 497-502 39
SmarTac
User’s Guide
p2 pe2a
1.Load the program module,
“OFrame”, from the provided
disk. The disk has been pro-
vided to speed up this exercise.
If you don’t have the disk, you
will have to write the routines
from scratch using the teach
pendant. A printout can be
found in section 8.3 of this
manual.
p3 p1
pe1b
pe3a pe1a
Figure 17.
3. Mark three points on the surface of the plate and label them p1, p2, and p3.
The location of the points is not critical, but they should be near the corners
as shown in Figure ex5.b & ex5.c.
40 503 497-502
SmarTac
User’s Guide
6. Jog the robot so that the torch is situated about 150mm above the plate sur-
face and pointing down at the plate.
7. Move the cursor to the first MoveJ and modify the position. You may have
to change your settings in the Jog Window to reflect the work object
change.
8. Jog the robot so that the torch TCP is just touching the p1 mark, and modify
the second MoveL: MoveL p1,v200,fine,tWeldGun\WObj:=obREF;
9. Jog the robot to the p2 mark and modify the MoveL: MoveL p2,v200…
10. Jog the robot to the p3 mark and modify the MoveL: MoveL p3,v200…
11. Jog the robot so the torch is about 150mm above the plate and modify the
last MoveJ.
12. Move the Program Pointer to the beginning of the routine, and start execu-
tion. The robot should go from point to point with the torch TCP, stopping
at each point so that the position can be checked. If any positions need to be
changed, change them now.
14. Jog the robot so that the torch TCP is above the plate and off the corner
where p1 is. Modify the first MoveJ.
503 497-502 41
SmarTac
User’s Guide
Figure 18.
Jog the robot down so that the torch gas cup is in a position to search the edge of
the plate. Refer to Figure ex5.b and modify the points the first Search_1D. The
search direction is indicated in Figure ex5.b for the displacement frame pe1a (the
first search result). Remember that the search direction should be perpendicular to
the edge of the part.
Modify all the rest of the moves and searches as prescribed by Figure ex5.b.
Test run the SearchSample procedure.
Move the Program Pointer to the routine called: “WeldSample”. WeldSample does
not have any ArcL instructions so that ArcWare need not be present to load this
module. It has only MoveL instructions with slow speeds to simulate welding.
Draw a simulated weld on the surface of the plate using a straight edge and marker
(See Figure ex5.d). WeldSample has only two segments, you may add more if you
desire.
Figure 19.
15. Modify the first point to be above the plate at least 100mm.
16. Modify the second point to be the start of the simulated weld.
17. Modify the third and fourth points to be the middle and end of the weld.
42 503 497-502
SmarTac
User’s Guide
18. Modify the last point to be above the plate at least 100mm.
21. Run NewPoints. The points p1, p2, and p3 should be pointed out correctly.
If not, there is a mistake somewhere. Check your program.
22. Run WeldSample again to be sure everything is ok. If the path is not fol-
lowed, check the program again.
23. Leaving the plate clamped at the corner, move the plate about 10mm at the
end.
7. For the best accuracy, there should be two searches for each reference point,
located close to each reference point. In this exercise we use only four
searches to approximate this. How far do you have to rotate the plate before
you notice the inaccuracy?
503 497-502 43
SmarTac
User’s Guide
5.8 Search_Part.
Sometimes it is necessary to search a part feature to determine if it is there or not.
Information like this can be used to determine what type of part is present, or if a
part is loaded at all. The SmarTac instruction, Search_Part is provided for this use.
Search_Part is programmed very much like a Search_1D instruction, but it returns
a Boolean instead of a Program Displacement. In use it looks like this:
Search_Part bPresent,p1,p2,v200,tWeldGun;
The robot moves on a path from p1 through p2. If contact is made with the part fea-
ture, the Boolean, bPresent, is set to TRUE. If no contact is made, it is set to
FALSE.
In this example a weld procedure is selected based on the presence of a particular
part feature:
44 503 497-502
SmarTac
User’s Guide
PROC Which_Part()
MoveJ *,v200,z10, tWeldGun;
MoveJ *,v200,fine, tWeldGun;
Search_Part bPresent,p1,p2,v200,tWeldGun;
IF bPresent THEN
Big_Part;
ELSE
Small_Part;
ENDIF
ENDPROC
2. You need only one instruction in this procedure, Search_Part. You will
have to create Boolean to use as your result. The robtargets need not be
named. Search for the edge of the plate such that you can take the plate
away later.
1. With the plate in place, what is the value of the Boolean after searching?
2. With the plate removed, what is the value of the Boolean after searching?
Advanced:
3. What happens when you move the plate so that it is touching the gas cup at
the start of the search?
5.9 Conclusion
This overview provides most of the techniques required to use SmarTac searching
on the majority of real-world weldments. A number of optional arguments for the
search instructions have not been explained here. For more information about
these, as well as more examples, see section 8.1 “Instructions”. You will also find
an instruction called PDispAdd which is used with the same effect as the function
PoseAdd.
Work objects were discussed briefly throughout this manual. Please consult the
Controller User’s Manual for any questions about how to use work objects to sim-
plify programming. Especially for users with coordinated work objects on posi-
tioning equipment, a firm understanding of work object user and object frames is
critical to writing good weld routines.
503 497-502 45
SmarTac
User’s Guide
46 503 497-502
SMARTAC
Software Reference
6 Software Reference
,QVWUXFWLRQV
Example
Search_1D peOffset,p1,p2,v200,tWeldGun;
The robot moves on a path from p1 through p2. When contact is made with the part
feature, the difference between the contact location and p2 is stored in peOffset.
Arguments
Search_1D [\NotOff] Result [\SearchStop] StartPoint SearchPoint
Speed Tool [\WObj ] [\PrePDisp] [\Limit] [\SearchName]
>?1RW2II@ 'DWDW\SHVZLWFK
If selected, the welding positive lead secondary contact (break box) remains open at
the end of the search. Additionally, the SmarTac board remains activated after the
search ends. If this switch is selected directly before a welding instruction, welding
current will not reach the torch.
5HVXOW 'DWDW\SHSRVH
If selected, this robtarget will be updated as the point where the robot detects
the part feature.
503 497-502 47
SMARTAC
Software Reference
The point where the robot expects to touch the part. This robtarget is pro-
grammed so that the torch is touching the surface of the part feature.
6SHHG 'DWDW\SHVSHHGGDWD
The speed data used when moving to the StartPoint. The velocity of the
search motion is unaffected.
The work object used during the search. WObj determines what frame Result
will be related to. If not selected, wobj0 is used.
If selected, the search will be conducted with this displacement frame active,
effectively adding the two displacement frames. This may or may not be the
same as the pose data selected for Result.
If selected, the search will be assigned this identifying name. The name will
accompany any error messages that are written to the User Error Log.
Program execution
When executed, the robot makes an ‘L’ move to the start point, StartPoint. The
SmarTac board is activated and motion starts towards the search point, SearchPoint.
The robot will continue past the search point for a total search distance described by
twice the distance between StartPoint and SearchPoint. Once the part feature is
sensed, motion stops, and the displacement data, Result, is stored. This program
displacement can later be used to shift programmed points using the RAPID instruc-
tion PDispSet.
Limitations
If the switch, NotOff, is selected, the welding positive lead secondary contact (break
box) remains open at the end of the search. If this switch is selected directly before
a welding instruction, welding current will not reach the torch and an Arc Ignition
Error will occur.
48 503 497-502
SMARTAC
Software Reference
Fault management
If an error occurs when activating the SmarTac board, a menu will appear with the
following prompts:Activation of the SmarTac failed
When RETRY is selected the start point of the search is shifted farther from the part
feature. This may give a good search result in cases where the part feature is unu-
sually close and the torch is touching the part feature at the beginning of a normal
search.
When RETURN is selected a default search result is used which will include any
pre-offset included in the search instruction. A message will be logged in the User
Error Log.
If an error occurs during the search process, a menu will appear with the following
prompts:
Search failed
When RETRY is selected the end point of the search is shifted farther into the part
feature. This may give a correct search in cases where the part feature is unusually
far away from the search.
When RETURN is selected a default search result is used which will include any
pre-offset included in the search instruction. A message will be logged in the User
Error Log.
If the torch makes contact with the part before the search begins, the following
menu appears:
503 497-502 49
SMARTAC
Software Reference
When RETRY is selected the start point of the search is shifted farther from the part
feature. This may give a good search result in cases where the part feature is unu-
sually close and the torch is touching the part feature at the beginning of a normal
search.
When RETURN is selected a default search result is used which will include any
pre-offset included in the search instruction. A message will be logged in the User
Error Log.
If the optional argument Limit is selected and the magnitude of peResult is larger
than the value entered for the Limit, the following message appears:
Examples
Single dimension search in any direction:
50 503 497-502
SMARTAC
Software Reference
Other variations:
One dimensional search with the maximum limit set at 4mm. If the magnitude of
the trans portion of peOffset is greater than 4mm an error is flagged:
Search_1D,peOffset,p1,p2,v200,tWeldGun\Limit:=4;
One dimensional search with the gas cup. The robtarget p3 is updated with the
actual search position:
Search_1D\SearchStop:=p3,pose1,p1,p2,v200,tWeldGun;
One dimensional search with the gas cup. If an error occurs while searching and the
operator elects to continue with default results, the name, First, will appear along
with the error description, in the User Error Log. See: Fault Management above.
Search_1D pose1,p1,p2,v200,tWeldGun\SearchName:=”First”;
Syntax
Search_1D
503 497-502 51
SMARTAC
Software Reference
Related information
Described in:
Example
Search_Part bPresent,p1,p2,v200,tWeldGun;
The robot moves on a path from p1 through p2. If contact is made with the part fea-
ture, the Boolean, bPresent, is set to TRUE. If no contact is made, it is set to FALSE.
Arguments
Search_Part [\NotOff] bDetect StartPoint SearchPoint Speed Tool
[\WObj]
If selected, the welding positive lead secondary contact (break box) remains
open at the end of the search. Additionally, the SmarTac board remains acti-
vated after the search ends. If this switch is selected directly before a welding
instruction, welding current will not reach the torch.
The Boolean that will be updated. TRUE: if the part is sensed, FALSE: if the
part is not sensed.
52 503 497-502
SMARTAC
Software Reference
The point where the robot expects to touch the part. This robtarget is pro-
grammed so that the torch is touching the surface of the part feature.
The speed data used when moving to the StartPoint. The velocity of the
search motion is unaffected.
The work object used during the search. WObj determines what frame peRe-
sult will be related to. If not selected, wobj0 is used.
Program execution
When executed, the robot makes an ‘L’ move to the StartPoint with the velo-
city selected in Speed. The SmarTac board is activated and motion starts
towards the SearchPoint. The robot will continue past the search point for a
total search distance described by twice the distance between StartPoint and
SearchPoint. If a feature is detected, the required Boolean is set to TRUE, oth-
erwise it is set to FALSE. In either case, program execution continues.
Limitations
If the switch, NotOff, is selected, the welding positive lead secondary contact
(break box) remains open at the end of the search. If this switch is selected
directly before a welding instruction, welding current will not reach the torch
and an Arc Ignition Error will occur.
Fault management
If an error occurs during the search process, a menu will appear with the fol-
lowing prompts:
503 497-502 53
SMARTAC
Software Reference
If RETRY is selected the robot will move to the StartPoint, then to the
approach point before searching. When DETECT or REJECT are selected, a
message is stored in the User Error Log.
Examples
In this example a procedure is selected based on the presence of a particular
part feature:
PROC Which_Part()
MoveJ *,v200,z10, tWeldGun;
MoveJ *,v200,fine, tWeldGun;
Search_Part bPresent,p1,p2,v200,tWeldGun;
IF bPresent THEN
Big_Part;
ELSE
Small_Part;
ENDIF
ENDPROC
Other Variations:
Search_Part\Wire,bPresent,p1,p2,v200,tWeldGun;
Search_Part\NotOff,bPart1,p1,p2,v200,tWeldGun\WObj:=obPart;
Search_Part bPart2,p3,p4,v200,tWeldGun\WObj:=obPart;
Syntax
Search_Part
[‘\ ‘ NotOff ‘,’]
[ bDetect’:=’ ] < expression (INOUT) of bool > ’,
[ StartPoint ’:=’ ] < expression (IN) of robtarget > ’,’
[ SearchPoint ’:=’ ] < expression (IN) of robtarget > ’,’
[ Speed ’:=’ ] < expression (IN) of speeddata > ’,’
[ Tool ’:=’ ] < persistent (PERS) of tooldata > ’,’
[ ‘\’ WObj ’:=’ < persistent (PERS) of wobjdata > ] ‘;’
Related information
Described in:
Search_1D SmarTac Instructions
datatype: bool Rapid Reference datatypes
54 503 497-502
SMARTAC
Software Reference
Example
PDispAdd pose2;
Arguments
3'LVS$GG5HVXOW
Program execution
When executed, Result is added to the current displacement frame, and the
new program displacement frame is activated.
Syntax
PDispAdd
[ Result ’:=’ ] < expression (IN) of pose > ’;’
Related information
Described in:
Search_1D SmarTac Instructions
PoseAdd SmarTac Functions
datatype: pose Rapid Reference datatypes
503 497-502 55
SMARTAC
Software Reference
)XQFWLRQV
Example
peSUM:=PoseAdd (peFIRST,peSECOND);
Arguments
3RVH$GG3RVH3RVH>?3RVH@
Syntax
PoseAdd ‘(‘
[ Pose1 ’:=’ ] < expression (IN) of pose > ’,’
[ Pose2 ’:=’ ] < expression (IN) of pose > ’,’
[‘ \’Pose3 ’:=’ < expression (IN) of pose > ] ’)’
56 503 497-502
SMARTAC
Software Reference
Related information
Described in:
PDispAdd SmarTac Instructions
datatype: pose Rapid Reference datatypes
Example
P1
X (reference)
displaced
P2
X (reference) displaced
RefP1
RefP2
Y (reference)
obNEW:=OframeChange(obREF,p1,p2,p3,pe1,pe2,pe3);
Arguments
2)UDPH&KDQJH:2EM5HI35HI35HI3'LVS3'LVS3'LVS3
503 497-502 57
SMARTAC
Software Reference
Limitations
The reference points can be any three points in space, but they must be
defined in the reference work object. Similarly, the displacements should be
related to the reference work object. The reference points do not have to be
the same points as those used in defining the reference work object.
Syntax
OFrameChange ‘(‘
[ WObj ’:=’ ] < expression (IN) of wobjdata > ’,’
[ RefP1’:=’ ] < expression (IN) of robtarget > ’,’
[ RefP2’:=’ ] < expression (IN) of robtarget > ’,’
[ RefP3’:=’ ] < expression (IN) of robtarget > ’,’
[ DispP1’:=’ ] < expression (IN) of pose > ’,’
[ DispP2’:=’ ] < expression (IN) of pose > ’,’
[ DispP3’:=’ ] < expression (IN) of pose > ’)’
58 503 497-502
SMARTAC
Software Reference
Related information
Described in:
PDispAdd SmarTac Instructions & Functions
PoseAdd SmarTac Instructions & Functions
datatype: pose Rapid Reference datatypes
datatype: wobjdataRapid Reference datatypes
datatype: robtargetRapid Reference datatypes
503 497-502 59
SMARTAC
Software Reference
2IUDPH0RGXOH5HIHUHQFH
Exercise 5 uses a program module called “OFrame”. The module is included on a
floppy disk with the manual. Its purpose is to speed up the training process, whether
it be an ABB training course or end-users training themselves. If the disk is not
present, use this printout to assist in writing the code. Note: Generic robtargets
have been reduced to “*” to save space.
! Example Module
MODULE OFrame
PERS wobjdata
obREF:=[FALSE,TRUE,"",[[0,0,0],[1,0,0,0]],[[0,0,0],[1,0,0,0]]];
PERS wobjdata
obNEW:=[FALSE,TRUE,"",[[0,0,0],[1,0,0,0]],[[0,0,0],[1,0,0,0]]];
PERS robtarget p1:=*;
PERS robtarget p2:=*;
PERS robtarget p3:=*;
PERS pose pe1a:=[[0,0,0],[1,0,0,0]];
PERS pose pe1b:=[[0,0,0],[1,0,0,0]];
PERS pose pe2a:=[[0,0,0],[1,0,0,0]];
PERS pose pe3a:=[[0,0,0],[1,0,0,0]];
PERS pose pe1:=[[0,0,0],[1,0,0,0]];
PERS pose pe2:=[[0,0,0],[1,0,0,0]];
PERS pose pe3:=[[0,0,0],[1,0,0,0]];
PROC NewPoints()
PDispOff;
MoveJ RelTool(p1,0,0,-100),v200,fine,tWeldGun\WObj:=obREF;
MoveL RelTool(p1,0,0,-50),v200,fine,tWeldGun\WObj:=obNEW;
MoveL p1,v200,fine,tWeldGun\WObj:=obNEW;
Stop;
MoveL RelTool(p2,0,0,-50),v200,fine,tWeldGun\WObj:=obNEW;
MoveL p2,v200,fine,tWeldGun\WObj:=obNEW;
Stop;
MoveL RelTool(p3,0,0,-50),v200,fine,tWeldGun\WObj:=obNEW;
MoveL p3,v200,fine,tWeldGun\WObj:=obNEW;
Stop;
MoveL RelTool(p3,0,0,-50),v200,fine,tWeldGun\WObj:=obNEW;
MoveJ RelTool(p3,0,0,-100),v200,fine,tWeldGun\WObj:=obREF;
ENDPROC
60 503 497-502
SMARTAC
Software Reference
PROC WeldSample()
MoveJ *,v200,fine,tWeldGun\WObj:=obNEW;
! Simulated weld:
MoveL *,v200,fine,tWeldGun\WObj:=obNEW;
MoveL *,v20,z1,tWeldGun\WObj:=obNEW;
MoveL *,v20,fine,tWeldGun\WObj:=obNEW;
MoveJ *,v200,fine,tWeldGun\WObj:=obNEW;
ENDPROC
PROC SearchSample()
PDispOff;
MoveJ *,v200,fine,tWeldGun\WObj:=obREF;
Search_1D pe1a,*,*,v200,tWeldGun\WObj:=obREF;
MoveL *,v200,fine,tWeldGun\WObj:=obREF;
Search_1D pe1b,*,*,v200,tWeldGun\WObj:=obREF;
MoveL *,v200,fine,tWeldGun\WObj:=obREF;
Search_1D pe2a,*,*,v200,tWeldGun\WObj:=obREF;
MoveL *,v200,z10,tWeldGun\WObj:=obREF;
MoveL *,v200,z10,tWeldGun\WObj:=obREF;
MoveL *,v200,fine,tWeldGun\WObj:=obREF;
Search_1D pe3a,*,*,v200,tWeldGun\WObj:=obREF;
MoveL *,v200,fine,tWeldGun\WObj:=obREF;
pe1:=PoseAdd(pe1a,pe1b);
pe2:=PoseAdd(pe1a,pe2a);
pe3:=PoseAdd(pe1b,pe3a);
obNEW:=OFrameChange(obREF,p1,p2,p3,pe1,pe2,pe3);
ENDPROC
PROC RefPoints()
PDispOff;
MoveJ *,v200,fine,tWeldGun\WObj:=obREF;
MoveL RelTool(p1,0,0,-50),v200,fine,tWeldGun\WObj:=obREF;
MoveL p1,v200,fine,tWeldGun\WObj:=obREF;
Stop;
MoveL RelTool(p2,0,0,-50),v200,fine,tWeldGun\WObj:=obREF;
MoveL p2,v200,fine,tWeldGun\WObj:=obREF;
Stop;
MoveL RelTool(p3,0,0,-50),v200,fine,tWeldGun\WObj:=obREF;
MoveL p3,v200,fine,tWeldGun\WObj:=obREF;
Stop;
MoveL RelTool(p3,0,0,-50),v200,fine,tWeldGun\WObj:=obREF;
MoveJ *,v200,fine,tWeldGun\WObj:=obREF;
ENDPROC
ENDMODULE
0HFKDQLFDO5HIHUHQFH
No mechanical references are included with the SmarTac package.
503 497-502 61
SMARTAC
Software Reference
62 503 497-502
SMARTAC
Electrical Reference
(OHFWULFDO5HIHUHQFH
SmarTac Reference
Without wire searching capability.
Drawing number: xxxxxxxxxxx
503 497-502 63
SMARTAC
Electrical Reference
64 503 497-502
SMARTAC
Warranty
:DUUDQW\
(a) EQUIPMENT WARRANTY. ABB warrants that the equipment shall be
free from defects in material and workmanship for the applicable Warranty Period
as described below. The Warranty Period shall be either: one year from date of ship-
ment; or if ABB installs the equipment or accepts a standard ABB Robot Installa-
tion Report from the installer, for a period of one year from completion of
installation, but not to exceed eighteen months from date of shipment; but in any
event the Warranty Period shall not exceed 4000 operating hours. Should any fail-
ure to conform with the applicable warranty appear during the specified period,
ABB shall, if given prompt notice by Buyer, repair, replace, or modify the defective
part or parts. New spare parts and refurbished parts shall be subject to the same war-
ranty as original equipment.
Repairs or replacements pursuant to warranty shall not renew or extend the original
equipment warranty period; provided, however, that any such repairs or replace-
ments shall be warranted for the time remaining of the original warranty period or
30 days, whichever is longer. ABB’s repair or replacement hereunder shall be
exclusive of any removal or installation costs, freight or insurance. ABB shall not
be responsible for providing working access to the defect.
(b) SERVICES. ABB warrants that the services of its personnel, if provided,
will be performed in a workmanlike manner. Should a failure to comply with this
warranty appear within six months from the date of completion of such services,
ABB shall, if promptly notified in writing, at its option, either provide the services
anew or pay Buyer the cost of procuring such services.
(c) SOFTWARE. ABB warrants for a period of one (1) year from the date of
shipment from ABB that the software furnished under this order will perform in
accordance with published or other written specifications prepared, approved, and
issued by ABB , when used with specifically identified hardware. In any event,
ABB makes no representation or warranty, express or implied, that the operation of
the software will be uninterrupted or error free, or that the functions contained in the
software will meet or satisfy the Buyer’s intended use or requirements.
503 497-502 65
SMARTAC
Warranty
66 503 497-502
SMARTAC
Contacts
&RQWDFWV
Please direct all technical and parts inquiries to:
503 497-502 67
SMARTAC
Contacts
68 503 497-502
SMARTAC
Glossary
*ORVVDU\
Baseframe A frame representing the relationship of a robot’s base to
the world frame.
Electrode Extension The location at the tip of the consumable welding wire
where metal transfer occurs.
Gas Cup The outer cylindrical portion of a MIG gun that directs the
shielding gas over the weld puddle. Often used as a
search-sensing surface. Also called a nozzle.
Stickout The distance measure from the contact tip to the weld
seam.
503 497-502 69
SMARTAC
Glossary
70 503 497-502
503 497-502
2001-03-06