WireSense For Fronius RW 6-En
WireSense For Fronius RW 6-En
WireSense For Fronius RW 6-En
Application manual
WireSense for Fronius TPS/i
Trace back information:
Workspace Main version a472
Checked in 2022-09-20
Skribenta version 5.5.019
Application manual
WireSense for Fronius TPS/i
RobotWare 6.14
Table of contents
Overview of this manual ................................................................................................................... 7
1 Introduction 9
1.1 Product overview .............................................................................................. 9
1.2 Operation overview ........................................................................................... 10
1.3 Prerequisites .................................................................................................... 11
1.3.1 System prerequisites ............................................................................... 11
1.3.2 User prerequisites ................................................................................... 14
2 Installation 15
2.1 Safety instructions ............................................................................................. 15
2.2 Hardware installation ......................................................................................... 16
2.3 Software installation .......................................................................................... 17
2.3.1 About WireSense function package ............................................................ 17
3 System parameters 19
3.1 WireSense Configuration .................................................................................... 19
3.2 WireSense ErrorHandler IO ................................................................................. 21
3.3 WireSense Settings ........................................................................................... 22
3.4 WireSense Speeds ............................................................................................ 23
3.5 WireSense Standard Signals ............................................................................... 24
7 Production Monitoring 53
9 RAPID references 57
9.1 Instructions ...................................................................................................... 57
9.1.1 SearchEdge - One-dimensional search ........................................................ 57
9.1.2 SenseL - Contour sensing ......................................................................... 62
9.1.3 SwitchWireSenseSettings - Switch WireSense signals and search speed .......... 67
Index 69
Note
It is the responsibility of the integrator to provide safety and user guides for the
robot system.
Usage
This manual can be used either as a reference to find out if an option is the right
choice for solving a problem, or as a description of how to use an option. Detailed
information regarding syntax for RAPID routines, and similar, is not described here,
but can be found in the respective reference manual.
This manual is intended for:
• installation personnel
• robot programmers
Prerequisites
The reader should:
• be familiar with industrial robots and their terminology
• be familiar with the RAPID programming language
• be familiar with system parameters and how to configure them
Note
Before any work on or with the robot is performed, the safety information in the
product manual for the controller and manipulator must be read.
References
References Document ID
Technical reference manual - RAPID Overview 3HAC050947-001
Technical reference manual - RAPID Instructions, Functions 3HAC050917-001
and Data types
Operating manual - IRC5 with FlexPendant 3HAC050798-001
Technical reference manual - System parameters 3HAC050948-001
Operating manual - RobotStudio 3HAC032104-001
Revisions
Revision Description
A Published with RobotWare 6.13.
B Published with RobotWare 6.14.
• Added section WireSense with Additional Arc Systems on page 55.
• Added section SwitchWireSenseSettings - Switch WireSense signals
and search speed on page 67.
1 Introduction
1.1 Product overview
General
The WireSense function package can be used as a tactile sensor as it uses the
wire electrode as a sensor to find the location of inconsistent weld joints and offset
the programmed points in a weld program.
In addition to the search and offset functionality the function package provides
support for the option 659-1 Production Monitoring.
General
With the WireSense function package, a part feature may be "searched" using the
welding wire as the sensing portion of the torch. Searches are programmed into
a weld sequence. Each search consists of two robtargets; one for the start location
and one for the expected location of the part feature. While searching the wire is
pulsed in a 100Hz frequency (reversing wire movement). The power source sends
the height information and the edge position to the robot. For example, if a lap joint
is being welded, the edge position can be precisely defined, and the system can
react to any deviations. The robot adjusts the weld seam process based on an
application-specific program.
It is also possible to determine the exact gap between the sheets. Edges are
detected from a height of 0.5 mm. WireSense can be used with steel, stainless
steel, and aluminium as well as with other alloys.
Search instructions
The search instructions included in the WireSense function package software are
designed to return offset information. In other words, the result of a search is the
distance between where the original search location was programmed and where
the robot has now found the part.
1.3 Prerequisites
Introduction
This version of the WireSense software function package is intended for use in arc
welding systems incorporating IRB 1600/1660 etc. robots.
• Add-In FroniusTPSi-WireSense
• Robot controller: IRC5
• RobotWare requirements: 6.11 or above
• [657-1] – SmarTac – I/O Version
• [633-4] – Arc 6
The Fronius welding equipment must fulfil the following requirements and must
be CMT Ready.
• WF60i RobactaDrive CMT
• Wire buffer CMT or SB 60i
• WF25i REEL or WF30i REEL
• 4,067,020 – OPT/I WireSense
Compatibility
The WireSense software function package can be used together with the SmarTac™
option.
WireSense works best with the official Fronius TPS/I welder interface which is
available free of charge and can be downloaded from the RobotStudio Add-In page.
In addition, the StdIoWelder interface is supported as well. Additional configuration
might be needed.
Limitations
• The WireSense function package can only be used with the first arc system
if option [651-2] – Two Additional Arc Systems is installed in combination
with the Fronius TPS/I Add-In .
See WireSense with Additional Arc Systems on page 55 for more information.
• It is not recommended to restore a backup if you update an existing system
with the WireSense function package since new system parameters are
in-troduced and the process configuration database (PROC) is updated.
These settings will be removed when restoring a backup that was taken prior
add-ing the WireSense function package. If a backup is restored the default
WireSense settings can added afterwards. See chapter 3.1 – WireSense
con-figuration
• The WF60i RobactaDrive CMT has a hard button “F1” which will activate the
Teach Mode functionality. By pressing the F1 button Teach Mode is activat-ed
internally in the TPS/I and no feedback is provided via the fieldbus inter-face.
This will prevent WireSense from being activated from the Robot. F1 must
be pressed again to switch off Teach Mode. Active TeachMode is shown with
a capital “T” in the display
• This limitation might be corrected in a future firmware release for the TPS/I
power source
• The following image show active Teach mode in the CMT Drive display.
xx2200001316
Robot programmer
Any competent robot programmer (RAPID language) may be self-taught to program
and use basic WireSense searches.
Note
It is the responsibility of the integrator to provide safety and user guides for the
robot system.
2 Installation
2.1 Safety instructions
DANGER
Before doing any work inside the cabinet, disconnect the mains power.
The components are sensitive to ESD. Always use ESD protection when handling
them. Use the wrist strap located on the controller.
DANGER
All personnel working with the robot system must be very familiar with the safety
regulations. Incorrect operation can damage the robot or injure someone.
Component list
The WireSense function package does not consist of any additional hardware
needed for the IRC5 controller. It utilizes the Fronius TPS/I WireSense functionality.
The TPS/I welder must be CMT Ready. See System prerequisites on page 11.
Installation
The WireSense function package is provided as an Add-In, that needs to be installed
in the robot controller using Robotstudio Installation Manager.
1 Add the option to the system.
xx2200000241
xx2200000242
xx2200000243
3 System parameters
3.1 WireSense Configuration
I/O Mapping
WireSense I/O connections are configured in the process configuration database
(PROC). Actual I/O assignments to real I/O boards are made by the WireSense
installation if the Fronius TPS/I welder Add-In is used. In case the Standard IoWelder
interface is used, these definitions must be added to the EIO configuration database
by the user or system designer. All related configuration files are loaded by the
WireSense installation into the appropriate motion tasks.
procWSenseSet_X.cfg file
The procWSenseSet_X.cfg files load default references to WireSense speed
and signal configuration groupings and procWSenseSpd.cfg files for up to 4
motion tasks, where the 'X' represents task numbers 1-4.
procWSenseSpd.cfg file
The procWSenseSpd.cfg file loads default search speeds into all applicable
motion tasks.
Override defaults
The user may override the defaults by replacing the entries with new entries. Below
is the default file loaded by WireSense in combination with the Fronius TPS/I welder
interface:
PROC:CFG_1.0::
#
WIRESENSE_SETTINGS:
-name "T_ROB1" \
-uses_signals "WireSenseSig" \
-uses_speeds "WireSenseSpeed"
#
WIRESENSE_SIGNALS:
-name "WireSenseSig" \
-ws_detect_input "diFr1TouchSense" \
-ws_on_output "doFr1WireSenseStart" \
-ws_active_input "diFr1ArcStable" \
-ws_height_input "aiFr1WireSensePosition" \
-ws_height_output "aoFr1WireSenseEdgeHight" \
-ws_break_output "doFr1WireSenseBreak" \
-ws_retract_wire "doFr1FeedRetract"
#
WIRESENSE_ERR_HNDL_IO:
-ws_go_Dialog "" \
-ws_do_Dialog "" \
-ws_di_Ack "" \
-ws_gi_Response "" \
-ws_go_ErrType ""\
-ws_go_ErrNum "" \
-ws_do_Error ""
Type WIRESENSE_ERR_HNDL_IO
Here you can configure the EIO Signals that communicate with a PLC to indicate
an error during search with the WireSense instructions.
xx2200000245
For more information, see Search Error Recovery I/O Interface on page 43.
Type WIRESENSE_SETTINGS
The following parameters are available:
Parameter name Type Description
Uses Signals string Reference to WireSense Standard Signals type. The
configured signals will be used.
Uses Speeds string Reference to WireSense Speeds type. The configured
speed values will be used.
Use EIO Interface boolean Parameter will enable (TRUE) or disable (FALSE) the
EIO Interface used to communicate with the PLC.
Default: FALSE
Default Sense num Value in mm at which height the WireSense function
Height will react on the edge detection. Fronius parameter
(edge detection wiresense).
Default value: 1.0
Min value: 0.5
Max value 20.0
Retract Wire num Value in seconds. Time to feed wire backwards after
the search instruction ended.
Any value >0 will enable the function.
Default value: 0
Min value: 0
Max value 3
Type WIRESENSE_speeds
The following parameters are available:
Parameter name Type Description
Name string Name of the speed instance. It is recommended to use
the default name.
Main Search num Default search speed used with the SearchEdge in-
Speed struction (in mm/s).
Default value: 25
Min value: 1.0
Max value: 80.0
Contour Search num Default search speed used with the SenseL instruction
Speed (in mm/s).
Default value: 10
Min value: 1.0
Max value: 25.0
Parameter WIRESENSE_SIGNALS
The following parameters are available:
Parameter name Type Description
Name string Name of the signals instance. It is recommended to
use the default name.
WireSense Detec- Digital input Fronius Touch Signal (Bit 7)
tion Input
WireSense On Digital output Fronius WireSense Start (Bit 29)
Output
WireSense Act- Digital input Fronius Arc Stable (Bit 5)
ive Input
WireSense Analog input Fronius Wire position (Bit 256 – 271)
Height Input
WireSense Analog output Fronius WireSense Edge Detection (Bit 256 – 271)
Height Output
WireSense Break Digital output Fronius WireSense Break (Bit 30)
Output
Wire Retract Out- Digital output Fronius Wire Retract (Bit 10)
put
General
WireSense is a function implemented in the Fronius TPS/I welder. The wire electrode
is turned into a sensor that checks the component position before each weld.
SearchEdge can compensate inconsistent weld joints by detecting actual sheet
heights and positions and offset the programmed points in a weld program.
The welding torch scans the component with a reversing wire movement and the
welding system sends the height information and the edge position to the robot.
For example, if a lap joint is being welded, the edge position can be precisely
defined, and the system can react to any deviations. The robot adjusts the weld
seam process based on an application-specific program.
By evaluating the height information, the robot can determine both the course of
the edge and the actual edge height. It is also possible to determine the exact air
gap between the sheets.
Basic example
In this example a simple overlap joint with 5 mm sheets is used to detect the edge.
Teach the start point and search point as shown in the table below. It is
recommended (but not mandatory) to align the welding gun perpendicular to the
surface. The SearchEdge instruction can compensate the torch angle if it is not
possible to align the welding torch perpendicular to the surface. Teach the search
point on the edge of the upper sheet so that the wire touches the edge. Make sure
the wire is not on the upper edge but on the lower edge.
When teaching the positions make sure to maintain the same height (Z) for the
robtarget, otherwise wrong height information will be calculated.
Description Position
StartPoint
Teach the posi-
tion somewhere
close to the edge
to keep the
search move-
ment short.
xx2200000246
Description Position
SearchPoint
Teach the search
position on the
edge. Make sure
the wire is not on
the upper edge.
Position must
have the same
stick-out as the
start point.
xx2200000247
RAPID example
PROC rDoEdgeSearch()
MoveL pApproach, v1000, z50, tWeldGun\WObj:=wobj0;
SearchEdge peResult, Height, pSearchStart, pSearchEnd, v1000,
tWeldGun\WObj:=wobj0;
MoveL pApproach, v1000, z50, tWeldGun\WObj: =wobj0;
ENDPROC
What happens?
When SearchEdge is executed the WireSense function is activated and the wire
is pulsed with a 100Hz frequency. Since the optional argument [\SenseHeight]
is not used a default sense height of 1 mm (as configured in the configuration
database) is used.
The robot will now do a search move towards the SearchPoint. With the default
sense height all changes in the stick-out more than 1 mm are detected by
WireSense.
The search distance (search vector) is twice the distance between the start point
and search point. The robot will not stop with the edge detection trigger from the
welder as the height measurement need to be done on the upper plate. This is
helpful when the gun is not aligned perpendicular to the surface.
Use the optional argument [\SearchEnd] to stop the search move at a defined
position or to avoid any collision, for example, with a part feature or tooling.
In this example, Height will have a value of 5 (mm).
If there would be, for example, a 2 mm gap between the lower and upper sheet,
the height value would be 7 (5mm sheet size + 2 mm gap).
The displacement value (pose) for the search point is returned in the variable
peResult. If the upper sheet is not moved away from the search point, then the
value should always within the specified tolerances, see Technical details Edge
detection Fronius WireSense on page 12.
Program displacement
In this example a simple overlap joint with 5 mm sheets is used to detect the edge
but now two search movements are used to search at the beginning and end of
the plate. Teach the start point and search point as shown in the table below. It is
recommended (but not mandatory) to align the welding torch perpendicular to the
surface. Teach the search point on the edge of the upper sheet so that the wire
touches the edge. Make sure the wire is not on the upper edge but on the lower
edge.
When teaching the positions make sure you keep the wire stick-out on a constant
level otherwise wrong height information will be calculated.
Description Positions
Startpoint and
Endpoint for
SearchEdge at
the beginning of
the plate
Position must
have the same
stick-out
xx2200000248
Description Positions
Startpoint and
Endpoint for
SearchEdge at
the end of the
plate
Position must
have the same
stick-out
xx2200000249
Create a path
along the edge.
This could be
either MoveL in-
structions, or in
this case Arc in-
structions
xx2200000250
RAPID example
PROC rDoEdgeSearch()
MoveL pApproach_1,v1000,z100,tWeldGun\WObj:=wobj0;
! Search the first position
SearchEdge peResult_Start, Height, pStart_1, pSearch_1, v1000,
tWeldGun\SchSpeed:=10;
MoveL pApproach_2, v1000, z100, tWeldGun\WObj: =wobj0;
! Search the second position
SearchEdge peResult_End, Height, pStart_2, pSearch_2, v1000,
tWeldGun\SchSpeed:=10;
What happens?
SearchEdge will perform a search move to find the edge at the beginning and at
the end of the plates. If the upper plate is not moved the weld positions will be in
its original location. If the upper plate is moved, for example, shifted 10 mm (in
search direction) then the poses peResult_Start and peResult_End will be
updated with the displacement. The displacement will be applied to the robot motion
with the execution of PDispSet prior to the Arc instructions. The weld should be
than again in the right location on the lower edge.
Height information
SearchEdge will return the height information based on feedback from the welder.
The height value is the sheet size + gap (if there is a gap between upper and lower
sheet). The height information can be used to change the welding parameters
and/or travel speed prior to the welding.
RAPID example
PROC rDoEdgeSearch()
VAR num sheetSize := 5;
VAR num Gap;
MoveL pApproach_1,v1000,z100,tWeldGun\WObj:=wobj0;
! Search the first position
SearchEdge peResult_Start, Height, pStart_1, pSearch_1, v1000,
tWeldGun\SchSpeed:=10;
MoveL pApproach_2,v1000,z100,tWeldGun\WObj:=wobj0;
! Search the second position
SearchEdge peResult_End, Height, pStart_2, pSearch_2, v1000,
tWeldGun\SchSpeed:=10;
Gap := Height - sheetSize;
IF (Gap > 0.1 ) AND (Gap < 1.0) THEN
wd1.main_arc.sched := 1;
wd1.weld_speed := 10;
ELSEIF (Gap >= 1.0 ) AND (Gap < 2.0) THEN
wd1.main_arc.sched := 2;
wd1.weld_speed := 9;
ELSEIF (Gap >= 2.0 ) AND (Gap < 3.0) THEN
wd1.main_arc.sched := 3;
wd1.weld_speed := 8;
ELSE
! Gap to large , check parts
! Stop;
ENDIF
! Activate program displacement based on search reault for start
position
PDispSet peResult_Start;
ArcLStart pArcStart,v1000,sm1,wd1,fine,tWeldGun\WObj:=wobj0;
! Activate program displacement based on search reault for end
position
PDispSet peResult_End;
ArcLEnd pArcEnd,v1000,sm1,wd1,fine,tWeldGun\WObj:=wobj0;
PDispOff;
ENDPROC
xx2200000251
As shown in the previous figure, the retracted path of the wire (HWS) at a work
angle of 90° also corresponds exactly to the height of the sheet edge to be
measured. No additional factors need to be subsequently considered and the value
that is output on the robot interface for the "Wire Position" variable can be used
directly as a valid measured value.
Note
These corrections are already done using the provided SearchEdge instruction.
No additional calculation is needed.
xx2200000252
As shown in the following figure, the real height of the sheet edge (HB) can be
determined by means of a simple trigonometric function. Here the measured value
HWS output by WireSense for the hypotenuse and the height of the sheet edge
HB for the opposite side correspond to an imaginary triangle. The relationship can
then be calculated based on the work angle α of the welding torch.
xx2200000253
These corrections are already done using the provided SearchEdge instruction.
No additional calculation is needed. The sheet height is automatically calculated
and updated by the SearchEdge instruction. In addition, an updated "Edge
detection value" is sent to the power source.
If for example SearchEdge is used on a 5 mm sheet and the edge detection value
in the instruction is set to 4.5 mm a value of roughly 6.4 mm is carried out to the
welder due to the 45° work angle.
General information
SenseL is an instruction used for contour sensing. Its main purpose is to scan the
component and return a position (or an offset) with the longest wire stick-out which
is normally the center of the groove. The instruction can, for example, be used on
a flare-V groove (commonly used to join two rounded or curved parts) or v groove.
Example of a double flare-V groove:
xx2200000254
The robot path and stick-out length is internally stored when the SenseL is
executed. The position is stored every 0.25-0.3 mm by default (this can be changed
within 0.25-1.5 mm using the optional argument [\Resolution]).
It is recommended to not exceed a maximum search time for 30 seconds and to
not use a fast search speed as this will have an impact on precision. The default
search speed is 10 mm/s. To avoid bending the wire once the search is ended,when
moving to the next scan or ArcStart,a retract function can be activated by adding
a time in the configuration (topic Process, type WireSense Settings, parameter
Retract Wire). Make sure the digital output is connected in WireSense Standard
Signals.
Basic example
In this example a simple double flare v joint is used to detect the center of the
groove. Teach the start point and search point as shown in the table below. It is
mandatory to align the welding gun perpendicular to the surface. The Stick-Out
length will not be compensated if the gun is not aligned. Teach the search point
at the center of the groove where we expect the longest wire stick out.
When teaching the positions make sure you keep the wire stick-out on a constant
level otherwise wrong height information will be calculated.
xx2200000255
Description Position
StartPoint
Teach the posi-
tion somewhere
close to the edge
to keep the
search move-
ment short.
xx2200000256
Description Position
SearchPoint
(Center Point)
Teach the search
position at the
center of the
groove.
Position must
have the same
height as the
start point.
xx2200000257
RAPID example
PROC rContourSense()
MoveL pApproach_1,v1000,z100,tWeldGun\WObj:=wobj0;
! Search the first position
SenseL peResult_Start, pStart_1, pGroove_1, v1000,
tWeldGun,"Seam1_Start";
MoveL pApproach_2,v1000,z100,tWeldGun\WObj:=wobj0;
! Search the second position
SenseL peResult_End, pStart_2, pGroove_2, v1000,
tWeldGun,"Seam1_End";
MoveL pApproach_2,v1000,z100,tWeldGun\WObj:=wobj0;
PDispSet peResult_Start ;
ArcLStart pArcStart,v1000,sm1,wd1,fine,tWeldGun\WObj:=wobj0;
PDispSet peResult_End ;
ArcLEnd pArcEnd,v1000,sm1,wd1,fine,tWeldGun\WObj:=wobj0;
PDispOff;
ENDPROC
What happens?
SenseL will perform a search move to find the position with the longest stick out.
The search vector is double the distance between the start point of the search and
the search point. While searching is active the positions and stick-out length
(feedback from welder) is stored internally. The displacement pose Result is then
calculated from the position with the longest stick out and the applied search point.
The displacement will be applied to the robot motion with the execution of PDispSet
prior to the arc instructions. The weld should be than again in the right location in
the center of the groove.
SenseL additionally provides a robtarget that can be used after searching in any
Arc or Move instructions instead of a activating a program displacement. This
robtarget will have the same orientation [rot] as the search start point.
The optional argument [\SearchResult] must be used. Since this position will
be updated by SenseL, it must be defined as PERS (persistent).
RAPID example
PROC rContourSense()
MoveL pApproach_1, v1000, z100, tWeldGun\WObj:=wobj0;
! Search the first position
SenseL peResult_Start, pStart_1,
pGroove_1\SearchResult:=pArcStart, v1000,
tWeldGun,"Seam1_Start";
MoveL pApproach_2, v1000, z100, tWeldGun\WObj:=wobj0;
! Search the second position
SenseL peResult_End, pStart_2, pGroove_2\SearchResult:=pArcEnd,
v1000, tWeldGun,"Seam1_End";
MoveL pApproach_2, v1000, z100, tWeldGun\WObj:=wobj0;
ArcLStart pArcStart, v1000, sm1, wd1, fine, tWeldGun\WObj:=wobj0;
ArcLEnd pArcEnd, v1000, sm1, wd1, fine, tWeldGun\WObj:=wobj0;
ENDPROC
General information
The search vector is calculated between StartPoint and SearchPoint. The
robot will continue past the search point for a total search distance described by
twice the distance between StartPoint and SearchPoint.
If for some reason this calculated distance is too long, for example, there is a risk
of a collision with the tooling/jig or the part, then the optional argument
[\SearchEnd] can be used to define the end of the search.
RAPID example
PROC rContourSense()
MoveL pApproach_1, v1000, z100, tWeldGun\WObj:=wobj0;
! Search the first position
SenseL peResult_Start, pStart_1,
pGroove_1\SearchEnd:=pSearchEnd_1, v1000,
tWeld-Gun,"Seam1_Start";
MoveL pApproach_2,v1000,z100,tWeldGun\WObj:=wobj0;
! Search the second position
SenseL peResult_End, pStart_2, pGroove\SearchEnd:=pSearchEnd_2,
v1000, tWeldGun,"Seam1_End";
MoveL pApproach_2,v1000,z100,tWeldGun\WObj:=wobj0;
ArcLStart pArcStart,v1000,sm1,wd1,fine,tWeldGun\WObj:=wobj0;
ArcLEnd pArcEnd,v1000,sm1,wd1,fine,tWeldGun\WObj:=wobj0;
PDispSet peResult_Start ;
ArcLStart pArcStart,v1000,sm1,wd1,fine,tWeldGun\WObj:=wobj0;
PDispSet peResult_End ;
ArcLEnd pArcEnd,v1000,sm1,wd1,fine,tWeldGun\WObj:=wobj0;
PDispOff;
ENDPROC
General information
The function package provides an I/O based interface to communicate with an
external device, mainly a PLC, to indicate an active user dialog on the FlexPendant
that need attention and remote control that user dialog. The I/O interface supports
all search instructions provided by the function package.
The Error Recovery I/O interface behave like RobotWare Arc Weld Error Recovery
I/O interface as it follows the same concept. If RobotWare Arc Weld Error Recovery
I/O interface is configured, the same signals can then be configured to remote
control the user interface for the search instructions.
Note
The Bit Mapping (length) for the group outputs/inputs might be changed if
RobotWare Arc Weld Error Recovery I/O interface and Search Error Error
Recovery I/O interface are used.
Additional information for the Weld Error Recovery I/O Interface can be found in
Application manual - Arc and Arc Sensor, section Weld Error Recovery interface.
The internal error handling can be switched off if needed. All search related errors
must be handled on user level by adding an error handler.
Note
If the internal error handler is switched off, the Search Error I/O interface cannot
be used.
Usage
The Search Error Recovery dialogs presented on the FlexPendant may be
acknowledged from a remote source through an optional I/O interface. This is
necessary if a PLC or other remote computer is used for the primary operator
interface while running production.
Architecture
All I/O signals used with the Search Error Recovery I/O interface must be configured.
In a MultiMove system, each welding robot will have its own Search Error recovery
I/O interface with separate I/O signals. The end user can specify his own signal
names for each welding robot in the system parameters (topic Process). To simplify
this document, the signal names will here be described as signalname_x. For
example: wi_di_Ack_X, where x specifies the number of the welding robot. The I/O
interface will be activated if all the signals for each welding robot are defined in
the system, otherwise, the I/O interface will be disabled.
Search Error Recovery I/O Interface signal definition (X represents robot number
1-4).
Signal common Signal definition Description
name name
Application Error ws_do_ Error_X Indicates a general WireSense error. This output can
be used if the internal error handler is switched off. It
will work independent from the I/O interface.
Type: Digital Output
Prompt Acknow- ws_di_Ack_X Allows the remote device to acknowledge a Weld Error
ledge Recovery prompt.
Type: Digital Input
Dialog Active ws_do_Dialog_X Indicates to a remote device that a dialog is active and
awaiting a response.
Type: Digital Output
Active Dialog ws_go_Dialog_X Indicates to the remote device that the Dialog Type
Type prompt is active (Type 13 to Type 14).
Type 1 to 8 are reserved/used by RobotWare Arc Er-
rorhandler IO interface. Type 9 to 12 are reserved/used
by the SmarTac Errorhandler IO interface.
Type: Group Output
Response ws_gi_Re- Allows the remote device to communicate a response.
sponse_X The context of the response is dictated by the active
dialog type.
• Active Dialog 13
1 Retry
2 Return
3 Abort (Raise)
• Active Dialog 14
1 Return
2 Abort (Raise)
Type: Group Input
Error Type ws_go_Er- Indicates to the remote device the WireSense error
rType_X type.
Valid output data range: 40-43
• 0 = No active error type
• (40) WSENSE_ACT_ERR
• (41) WSENSE_SENON_ERR
• (42) WSENSE_LIMIT
• (43) ERR_WHLSEARCH
Type: Group Output 6 bit
Sequence
The I/O sequence is as follows:
1 A search error occurs triggering a Search Error Recovery prompt to be
displayed. Search Error Recovery will set ws_do_Dialog_X high to indicate
an active prompt. Search Error Recovery will also set ws_go_Dialog_X to
indicate the type of prompt. If the prompt is an error type, an error type will
be supplied on group outputs ws_go_ErrType_X.
2 The remote device interprets the information. If the dialog prompt type
requires a numeric response, the remote device supplies the value on
ws_gi_Response_X.
3 The remote device acknowledges the prompt by pulsing the ws_di_Ack_X
signal. Search Error Recovery responds by closing the prompt on the
FlexPendant.
4 The Weld Error Recovery I/O interface will be inoperable until the
ws_di_Ack_X signal is reset.
A warning will be written in the user log if ws_diAck_X was active before the User
Dialog was active. In such a case the group outputs ws_go_ErrType_X and
ws_go_Dialog_X remain 0. The output ws_do_Dialog_X is still set to indicate a
necessary user action on the FlexPendant.
Dialog Type 13
xx2200000258
xx2200000259
Error while
Search
xx2200000260
When one of the above shown dialogs is active, the signal ws_do_Dialog_X will
be high and ws_go_Dialog_X will be set to 13. The remote device may respond to
the dialog by setting ws_gi_Response_X to a value from the list below, followed
by pulsing ws_di_Ack_X.
1 Retry
2 Return
3 Abort (Raise)
Dialog Type 14
xx2200000261
When the above shown dialog is active, the signal ws_do_Dialog_X will be high
and ws_go_Dialog_X will be set to 14. The remote device may respond to the dialog
by setting ws_gi_Response_X to a value from the list below, followed by pulsing
wi_di_Ack_X.
1 OK
2 Abort (Raise)
Error Type
The Error Type will be sent on ws_go_ErrType_X. The following is a list of possible
error types from WireSense.
ERRNO Description Error Type
WSENSE_ACT_ERR WireSense activation error 40
WSENSE _SEN- Part detected prior search 41
ON_ERR
WSENSE _LIMIT Limit Error (Seach_1D) 42
ERR_WHLSEARCH Error during search 43
WSENSE_PATHPOS Error while storing path 44
Error Number
The group output ws_go_ErrNum_X is not yet used and reserved for future use.
In the current version, WireSense does not provide any error codes related to
search errors. The output will bet set to 0.
Description
Search Error Handler I/O configures the Search Error Recovery I/O part of Search
Error Recovery feature in the WireSense function package. The system parameters
can be viewed in RobotStudio, in the Configuration Editor, in the topic Process,
type Arc Error Handler I/O.
In order to use the Search Error Handler I/O interface, the parameter Use EIO
Interface in the WireSense Settings must be set to active.
Examples
The default configuration has the following definition and can be found in the topic
Process, type WireSense Errorhandler IO.
xx2200000262
Parameters
To activate the Search Error handler IO interface, set Use EIO Interface to TRUE.
The parameter belongs to the type WireSense Settings, in the topic Motion.
xx2200000263
Description
The internal error handler in WireSense can be switched off to handle all possible
errors on user level. The error handler can be switched off in the process
configuration database.
The parameter Disable Errorhandler belongs to the type WireSense Settings, in
the topic Process.
The EIO Interface will remain inactive if the internal error handler in WireSense is
disabled, even if the EIO interface is configured.
xx2200000264
The output ws_do_Error_X is set if a search error or activation error occurs. The
signal is set to 0 with the next execution of a WireSense search instruction.
The following errors can be handled:
ERRNO Description
WSENSE_ACT_ERR WireSense activation error
WSENSE_SENON_ERR Part detected prior search
WSENSE_LIMIT Limit Error (SeachEdge)
ERR_WHLSEARCH Error during search
RAPID example
PROC rDoEdgeSearch()
MoveL pApproach_1,v1000,z100,tWeldGun\WObj:=wobj0;
SearchEdge peResult_Start, Height, pStart_1, pSearch_1, v1000,
tWeldGun\SchSpeed:=20;
ERROR
IF ERRNO = WSENSE_ACT_ERR THEN
! WireSense not active , handle activation error
ELSEIF ERRNO = WSENSE_SENON_ERR THEN
! Feature detected at activation , handle error here
ELSEIF ERRNO = WSENSE_LIMIT THEN
! Limit error while searching , handle limit error here
ELSEIF ERRNO = ERR_WHLSEARCH THEN
! Edge not found , handle error here
ENDIF
ENDPROC
7 Production Monitoring
Introduction
The WireSense instructions have support for the controller option 659-1 Production
Monitoring. A CSV file, SearchEdge.csv and respectively SenseL.csv, is created
as specified in Production Monitor Settings. The default path is the temp folder in
the robot system. For more information on how to use and set up Production
Monitoring, see Application manual - Production Monitor.
SearchEdge.csv
The following data is logged for SearchEdge in the file:
SenseL.csv
The following data is logged for SenseL in the file:
Note
WireSense can only be used and configured for one of the three possible arc
systems in combination with the Standard I/O Welder. If, for some reason, more
than one TPS/I welders are used the WireSense settings can be switched with
the RAPID instruction Switch-WireSenseSettings.
Note
It is the responsibility of the integrator to make sure the right welding equipment
and welding gun is mounted on the robot prior executing a SearchEdge/SenseL
instruction to avoid any damage to the welding equipment or robot system.
9 RAPID references
9.1 Instructions
Usage
SearchEdge is an instruction used for tactile searching with the Fronius TPS/I
WireSense option. The search path is described by two required robtargets. The
search result is stored as pose data in the required argument Result. All WireSense
activation and deactivation is automatically handled.
Basic examples
The following example illustrates the instruction SearchEdge.
Example 1
SearchEdge peOffset,Height, p1, p2, v200, tWeldGun;
The robot moves on a path from p1 through p2. When contact is made with the
upper sheet, the difference between the contact location on the upper sheet and
p2 is stored in peOffset.
Arguments
SearchEdge [\StopAtEndPoint] Result Height [\SearchStop]
[\SenseHeight] StartPoint SearchPoint [\SearchEnd] Speed Tool
[\WObj ] [\PrePDisp] [\Limit] [SchSpeed] [\WireSize]
[\SearchName] [\TLoad]
[\StopAtEndPoint]
Data type: switch
The robot will stop at the end of the search move and not move back to the
StartPoint.
Result
Data type: pose
The displacement frame that will be updated.
Height
Data type: num
Height value from the power source for the edge height measurement (in millimeter).
[\SearchStop]
Data type: robtarget
If selected this robtarget will be updated as the point where the robot detects the
part feature.
[\SenseHeight]
Data type: num
Value in millimeter sent to the power source to determine the minimum edge height
that triggers the edge detection. If not used the value configured in process
configuration is used. Default is 1 mm.
StartPoint
Data type: robtarget
The starting point for the search motion.
SearchPoint
Data type: robtarget
The point where the robot expects to touch the part. This robtarget is programmed
so that the torch is touching the surface of the part feature.
[\SearchEnd]
Data type: robtarget
Use the optional argument SearchEnd to stop the search move at a defined
position, or to avoid any collision, for example, with a part feature or tooling.
Speed
Data type: speeddata
The speed data used when moving to the StartPoint. The velocity of the search
motion is unaffected.
Tool
Data type: tooldata
The tool used during the search.
[\WObj]
Data type: wobjdata
The work object used during the search. WObj determines what frame Result will
be related to. If not selected, wobj0 is used.
[\PrePDisp]
Data type: pose
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.
[\Limit]
Data type: num
If selected, an error will be flagged if the magnitude of the search result, Result,
is larger than the value entered for the limit (in mm).
[SchSpeed]
Data type: num
Search speed during execution of the search movements. If not used the default
speed configured in the process configuration is used.
[\WireSize]
Data type: num
Not yet implemented. (Half of the wire size will be subtracted from the found edge
as the search movement stops on the upper sheet.)
SearchName
Data type: string
The search will be assigned this identifying name. The name will accompany any
error messages that are written to the event log.
[\TLoad]
Data type: loaddata
The argument \TLoad describes the total load used in the movement. The total
load is the tool load together with the payload that the tool is carrying. If the
argument \TLoad is used, then the loaddata in the current tooldata is not
considered.
If the argument \TLoad is set to load0, then the argument is not considered and
the loaddata in the current tooldata is used instead. For a complete description
of the argument TLoad, see MoveL in Technical reference manual - RAPID
Instructions, Functions and Data types.
Program execution
When executed, the robot makes a linear movement to the start point, StartPoint.
WireSense 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 the displacement data, Result, is stored. This program
displacement can later be used to shift programmed points using the RAPID
instruction PDispSet. In addition, the height information is stored in height
Error handling
Fault 1
If an error occurs when activating WireSense, a menu will appear with the following
prompts:
Activation of WireSense failed
RETRY Tries to search again with start point moved 50%
RETURN Continues the program with default search result
ABORT Sends error to calling routine
When RETRY is selected the start point of the search is shifted further from the
part feature. This may give a good search result in cases where the part feature is
Continues on next page
Application manual - WireSense for Fronius TPS/i 59
3HAC082151-001 Revision: B
© Copyright 2022 ABB. All rights reserved.
9 RAPID references
9.1.1 SearchEdge - One-dimensional search
Continued
unusually close, and the wire 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 event log.
Fault 2
If an error occurs during the search process, a menu will appear with the following
prompts:
Search failed
RETRY Tries to search again with start point moved 50%
RETURN Continues the program with default search result
ABORT Sends error to calling routine
When RETRY is selected the start point of the search is shifted further from the
part feature. This may give a good search result in cases where the part feature is
unusually close, and the wire 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 event log.
Fault 3
If for some reason the welder feedback that the edge is found before search begins,
the following menu appears:
Part detected at Search Start
RETRY Tries to search again with start point moved 50%
RETURN Continues the program with default search result
ABORT Sends error to calling routine
When RETRY is selected the start point of the search is shifted further from the
part feature. This may give a good search result in cases where the part feature is
unusually close, and the wire 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 event 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:
The search result is outside spec.
Offset:= [12.012,3.002,-5.013]
The magnitude of the offset := 13.34
The present limit := 10
OK Continue with program execution
RAISE Sends the error to calling routine
Syntax
SearchEdge
['\ ' StopAtEndPoint ',']
[ Result ':=' ] < expression (INOUT) of pose > ','
[ Height ':=' < expression (INOUT) of num > ]
[ '\' SearchStop ':=' < expression (INOUT) of robtarget >','
[ '\' SenseHeight ':=' < expression (IN) of num >',']
[ StartPoint ':=' ] < expression (IN) of robtarget > ','
[ SearchPoint ':=' ] < expression (IN) of robtarget > ','
[ '\' SearchEnd ':=' < expression (INOUT) of robtarget >','
[ Speed ':=' ] < expression (IN) of speeddata > ','
[ Tool ':=' ] < persistent (PERS) of tooldata >
[ '\' WObj ':=' < persistent (PERS) of wobjdata > ]
[ '\' PrePDisp ':=' < expression (IN) of pose > ]
[ '\' Limit ':=' < expression (IN) of num > ]
[ '\' SchSpeed ':=' < expression (IN) of num > ]
[ '\' WireSize ':=' < expression (IN) of num > ]
[ '\' SearchName ':=' < expression (IN) of string > ]
[ '\' TLoad ':=' ] < persistent (PERS) of loaddata > ] ';'
Related information
Usage
SenseL is an instruction used for tactile searching with the Fronius TPS/I WireSense
option. The search path is described by two required robtargets. The search result
is stored as pose data in the required argument Result. All WireSense activation
and deactivation is automatically handled. The instruction can be used to search
for a position (robtarget) along a path that has either the longest stick-out (usually
at the center of the V-joint) or the shortest stick-out (outer edge of an inverted
V-joint).
Basic examples
The following example illustrates the instruction SenseL.
Example 1
SenseL peOffset, p1, p2, v200, tWeldGun, "Seam1"
The robot moves on a path from p1 through p2. When contact is made with the
upper sheet, the difference between the contact location on the upper sheet and
p2 is stored in peOffset.
Arguments
SenseL Result SearchStart SearchPoint [\SearchEnd] [\SearchResult]
Speed Tool [\WObj] [\PrePDisp] [\Limit] [\Resulution]
[SchSpeed] [\ShortStickOut] SearchName [\TLoad]
Result
Data type: pose
The displacement frame that will be updated.
SearchStart
Data type: robtarget
The starting point for the search motion.
SearchPoint
Data type: robtarget
The point where the robot expects the position with the longest stick out. This
robtarget is programmed in the center of the groove.
[\SearchEnd]
Data type: robtarget
If selected the robot movement will stop at the SearchEnd position. Otherwise the
movement is two times the distance between the SearchStart and SearchPoint.
[\SearchResult]
Data type: robtarget
If selected this robtarget will be updated as the point where the robot detects
the longest stick out (or the shortest if the optional argument [\ShortStickOut]
is used.
Speed
Data type: speeddata
The speed data used when moving to the SearchStart. The velocity of the search
motion is unaffected.
Tool
Data type: tooldata
The tool used during the search.
[\WObj]
Data type: wobjdata
The work object used during the search. WObj determines what frame Result will
be related to. If not selected, wobj0 is used.
[\PrePDisp]
Data type: pose
Not implemented.
[\Limit]
Data type: num
If selected, an error will be flagged if the magnitude of the search result, Result,
is larger than the value entered for the limit (in mm).
[\Resolution]
Data type: num
The resolution in mm. Default value is 0.5 mm. Maximum value is 1.5 mm.
[SchSpeed]
Data type: num
Search speed during execution of the search movements. If not used the default
speed configured in the process configuration is used.
[\ShortStickOut]
Data type: switch
If used the position with the shortest stick-out is returned.
SearchName
Data type: string
The search will be assigned this identifying name. The name will accompany any
error messages that are written to the event log.
[\TLoad]
Data type: loaddata
The argument \TLoad describes the total load used in the movement. The total
load is the tool load together with the payload that the tool is carrying. If the
argument \TLoad is used, then the loaddata in the current tooldata is not
considered.
If the argument \TLoad is set to load0, then the argument is not considered and
the loaddata in the current tooldata is used instead. For a complete description
of the argument TLoad, see MoveL in Technical reference manual - RAPID
Instructions, Functions and Data types.
Program execution
When executed, the robot makes a linear movement to the search start point,
SearchStart. WireSense 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 SearchStart and SearchPoint.
Once motion stops the displacement data, Result, is stored. This program
displacement can later be used to shift programmed points using the RAPID
instruction PDispSet.
Error handling
Fault 1
If an error occurs when activating WireSense, a menu will appear with the following
prompts:
Activation of WireSense failed
RETRY Tries to search again with start point moved 50%
RETURN Continues the program with default search result
ABORT Sends error to calling routine
When RETRY is selected the start point of the search is shifted further from the
part feature. This may give a good search result in cases where the part feature is
unusually close, and the wire 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 event log.
Fault 2
If an error occurs during the search process, a menu will appear with the following
prompts:
Search failed
RETRY Tries to search again with start point moved 50%
RETURN Continues the program with default search result
ABORT Sends error to calling routine
When RETRY is selected the start point of the search is shifted further from the
part feature. This may give a good search result in cases where the part feature is
unusually close, and the wire 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 event log.
Fault 3
If for some reason the welder feedback that the edge is found before search begins,
the following menu appears:
Part detected at Search Start
RETRY Tries to search again with start point moved 50%
RETURN Continues the program with default search result
ABORT Sends error to calling routine
When RETRY is selected the start point of the search is shifted further from the
part feature. This may give a good search result in cases where the part feature is
unusually close, and the wire 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 event 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:
The search result is outside spec.
Offset:= [12.012,3.002,-5.013]
The magnitude of the offset := 13.34
The present limit := 10
OK Continue with program execution
RAISE Sends the error to calling routine
Syntax
SenseL
[ Result ':=' ] < expression (INOUT) of pose > ','
[ SearchStart ':=' ] < expression (IN) of robtarget > ','
[ SearchPoint ':=' ] < expression (IN) of robtarget >
[ '\' SearchEnd ':=' < expression (IN) of robtarget >
[ '\' SearchResult ':=' < expression (INOUT) of robtarget >
[ Speed ':=' ] < expression (IN) of speeddata > ','
[ Tool ':=' ] < persistent (PERS) of tooldata >
[ '\' WObj ':=' < persistent (PERS) of wobjdata > ]
[ '\' PrePDisp ':=' < expression (IN) of pose > ]
[ '\' Resolution ':=' < expression (IN) of num > ]
[ '\' SchSpeed ':=' < expression (IN) of num > ]
[ '\' ShortStickOut]
[ '\' SearchName ':=' < expression (IN) of string > ]
[ '\' TLoad ':=' ] < persistent (PERS) of loaddata > ] ';'
Related information
Usage
SwitchWireSenseSettings is an instruction used to switch the configuration of
WireSense - Standard Signals and WireSense Speeds to be used for searching
with WireSense. This can for example be used to change between multiple arc
systems.
Basic examples
The following example illustrates the instruction SwitchWireSenseSettings.
Example 1
SwitchWireSenseSettings "WireSenseSig_R1", "WireSenseSpeed_R1";
Arguments
SwitchWireSenseSettings ( sWireSenseSignals sWireSenseSpeeds
[\WaitInpos] )
sWireSenseSignals
Data type: string
This argument specifies the WireSense - Standard Signals configuration instance
that will be activated.
sWireSenseSpeeds
Data type: string
This argument specifies the WireSense Speeds configuration instance that will be
activated.
\WaitInpos
Data type: num
If this argument is used, RAPID execution will wait the specified number of seconds
for robot and external axes to come to a standstill.
Syntax
SwitchWireSenseSettings
[sWireSenseSignals ':='] <expression (IN) of string>
[sWireSenseSpeeds ':='] <expression (IN) of string>
['\' WaitInpos ':='] <expression (IN) of num>';'
Index S
SearchEdge, 57
SenseL, 62
SwitchWireSenseSettings, 67
ABB AS
Robotics & Discrete Automation
Nordlysvegen 7, N-4340 BRYNE, Norway
Box 265, N-4349 BRYNE, Norway
Telephone: +47 22 87 2000
ABB Inc.
Robotics & Discrete Automation
1250 Brown Road
Auburn Hills, MI 48326
USA
Telephone: +1 248 391 9000
abb.com/robotics
3HAC082151-001, Rev B, en