Page 4
The information in this manual is subject to change without notice and should not be construed as a commitment by ABB. ABB assumes no responsibility for any errors that may appear in this manual. Except as may be expressly stated anywhere in this manual, nothing herein shall be construed as any kind of guarantee or warranty by ABB for losses, damages to persons or property, fitness for a specific purpose or the like.
Overview of this manual Overview of this manual About this manual This manual explains the basics of when and how to use the option BullsEye®. • Product overview • Operation overview • Requirements overview • Software set-up • Software reference, RAPID...
Page 8
Continued Revisions Revision Description Released with RobotWare 6.0. Released with RobotWare 6.04. • BullsEye is now a separate RobotWare option. Released with RobotWare 6.07. • Added information about EIO configuration in section Installation on page Released with RobotWare 6.08. •...
Product documentation Categories for user documentation from ABB Robotics The user documentation from ABB Robotics is divided into a number of categories. This listing is based on the type of information in the documents, regardless of whether the products are standard or optional.
2.1 Product overview Introduction to BullsEye BullsEye® 10 provides completely automated Tool Center Point (TCP) definition for the IRC5 robot controller and introduces support of new tools in addition to MIG welding torch configurations. Concentric cutting tools may also be used where the stick-out is defined as the distance from the cutting tip to the part surface.
2 Adjust for the misalignment automatically by redefining the TCP to the new torch position using the BullsEye. After the BullsEye system updates the current TCP definition, the torch will rotate around the TCP as before because the robot arm has adjusted its path to compensate for the torch misalignment.
Limitations for calibration BullsEye 10 can be used to calibrate tools of a variety of shapes. While earlier versions of BullsEye were restricted to welding MIG tool designs, BullsEye 10 is also suited to cutting tools that do not have a consumable wire electrode like a MIG tool.
Page 20
TCP z-axis inline with mounting surface z-axis not supported BullsEye is incapable of defining a tool that has the TCP centered along the z-axis of the robot 6th axis mounting surface, and the z-axis of the tool perpendicular to the mounting surface.
• BullsEye application manual (this manual). The manual is distributed in electronic format. • BullsEye scanning device. Typically this will be the standard BullsEye yoke described below. • BullsEye robot software. Software can be delivered as a separate product, or as part of cell management software like GAP and EasyArc.
Page 24
Orientation of the scanning device Although BullsEye can be configured to handle any scan device orientation, it is easiest to setup BullsEye when the beam of the scanning device is in a plane parallel to the plane of the robot base.
Page 25
The BullsEye option is available for the robot controller only if the BullsEye option is purchased. If BullsEye is installed in a system with the Arc option, it will only be installed on the robots that installs Arc. If installed in a system without the Arc option it will be installed in all robots.
Page 26
I/O board. Pass your hand through the BullsEye yoke beam to break the beam. The LED on the I/O board corresponding to the input should turn on when the beam is broken.
5.1 Overview Initialization and define a tool The first step in using BullsEye® is to define a tool. This is done using the BESetupToolJ instruction. This instruction adds a tooldata instance to the BullsEye collection of tools, defines the starting position, and lets BullsEye know how it should behave when other global methods are called.
The file is stored in the following directory, with a name like, $HOME\BullsEye® \BE_Data_T_ROB1.sys, where T_ROB1 is the name of the task. Each robot task that is using BullsEye will have its own data file. The directory path may not be changed.
Introduction The user module in your system may look different than the basic example used in this procedure, however, all user modules will make calls to BullsEye methods like BECheckTcp and BESetupToolJ. This section focuses solely on the flexibility of these global methods themselves.
5.3.1 The global methods of BullsEye The term global method BullsEye has several global methods used to access BullsEye features. The term, global methods, refers to RAPID instructions that are visible from your RAPID program. That is to say that the instructions may be called from your RAPID program in the same way you might make a call to the MoveJ instruction.
Action Use the BESetupToolJ instruction to define a tool. This instruction adds a tooldata instance to the BullsEye collection of tools, defines the starting position, and lets BullsEye know how it should behave when other global methods are called. This information is passed to the instruction through several required and optional argu- ments.
Page 35
Design Data, Scan Data, and Device Data. These three data types provide configurable parameters used to influence the beha- vior of BullsEye for the newly added tool. The names of the data type are be_tooldesign, be_scan, and be_device, respectively. This section will cover some of the basic parameters.
Page 36
5 User guide 5.3.2 Defining a tool Continued Action The next argument is the tool. All information passed to BullsEye with the BESetupToolJ instruction will be associated by the tool name. BESetupToolJ jtApprPos, jtStartPos, 15, tdMigDefault, scan- BullsMig, devYokeUp, v100, fine, tWeldGun;...
When a small tooling ball is mounted on the robot as a tool, this data instance will provide data that allows BullsEye to find the center of the ball. Default device data for a standard BullsEye yoke scanning device devYokeUp positioned with the yoke facing up relative to the robot base.
5.3.4 Selecting different BullsEye data 5.3.4 Selecting different BullsEye data Introduction Sometimes it is necessary to choose a different data instance. Consider a system where the BullsEye yoke is mounted upside down. Illustration: scan device orientations xx1400001219 xx1400001220 The image on the left shows the yoke mounted right side up.The figure on the right shows the yoke mounted upside down.
A common parameter that sometimes requires a change is the Signal Name. The BullsEye scanning device is wired to a digital input in the controller. The signal name used in BullsEye must match the signal name defined in system parameters.
Page 42
5 User guide 5.3.5 Creating new BullsEye data instances Continued Creating new BullsEye data instances Action From the Program Data window, view the be_device data in the system. The following figures shows viewing the be_device data with built-in scope and with task scope.
Page 43
5 User guide 5.3.5 Creating new BullsEye data instances Continued Action The new data instance may be modified because it was declared in an open module, meaning it is not read-only. We need to modify the Signal Name. • Tap Enter to view the data instance fields.
BESetupToolJ instruction re-executed. It takes some practice to be able to run the setup on the first try. It is best to try running the BullsEye before permanently mounting the sensor, in case you find that it must be moved to complete the setup.
5.4 BullsEye status codes 5.4 BullsEye status codes About status codes BullsEye uses status codes to report errors from the user instructions. The error code may be captured using the INOUT Status parameter in BEUpdateTcp, BERefPointer, and BECheckTcp. List of error codes The following is a list of the error codes and a brief description for each.
Page 48
BESliceCountErr BullsEye will take "slices" of the tool to find the end of the tool. If it cannot find the end of the tool in a reasonable number of scans, the instruction will be aborted and this message will be raised.
Page 49
BE_Data module. Load the correct BE_Data module, or reinitialize and run the setup instruction. BEBeamMoveErr BullsEye has detected that the beam has moved. Re-run the setup. BECheckErr There was a problem in the BECheckTcp instruction. The cause is unknown.
I/O board. The signal is commonly given the name diBE_SENSE1. CONST be_device devYokeUp:=["diBE_SENSE1",TRUE, CONST be_device devYokeUp:=["diMyNewSense",TRUE, BullsEye must be informed of the name of the digital input. The name of the signal is defined in the be_device data instance that is passed into the BESetupToolJ instruction. See be_device in...
Page 52
This is the preferred method since it negates the positional inaccuracy of the robot carrier. If the BullsEye scanning device is fixed in the world, then a flag must be set in the be_device data to inform BullsEye.
Page 53
[TRUE,30,1,50,3.5,4,FALSE,FALSE,1.2,[130,100,100,100], [220,130,100,100]]; When a tool with welding wire is measured, BullsEye cannot actually measure the real location of the end of the wire. The wire location is measured close to the end of the gas cup, and the TCP is mathematically extended down from the end of the gas cup based on the TCP Extension parameter passed into the BESetupToolJ instruction.
Page 54
MinBodyDia We want to put a very small number here so that BullsEye will not think it has reached the end of the tool until it makes slices all the way past the end of the ball. We will use 1 mm.
In such cases it may be necessary to increase Repeatability in order for the robot to find an acceptable solution. A convergence error is reported via the BullsEye error code argument when the system cannot reach the desired repeatability within a reasonable time.
Page 56
Device upright Device inverted MovedWithRobot Data type: bool If the robot baseframe is moved by a mechanism, does the BullsEye move with it? If not, set this to FALSE. RefPoint Data type: bool If there is a reference pointer to define, set this parameter to TRUE.
6 RAPID reference 6.1.2 be_scan - Scan data 6.1.2 be_scan - Scan data Usage be_scan describes how BullsEye® should behave during the scanning process. Components NumOfScans Data type: num The number of redundant scans is defined here. Redundant scanning will give better repeatability and accuracy.
Page 62
The RangeShift is useful in ignoring weld spatter on a MIG welding torch. Units: mm SliceGap Data type: num When scanning to find the end of the tool BullsEye® takes "slices" of the tool until the end is found. The SliceGap is the thickness of each slice. Units: mm ScanWire Data type: bool If ScanWire is TRUE, then BullsEye®...
QuickCheck. If the measurement indicates that the tool TCP has moved, BullsEye will do a complete evaluation to get the new TCP. If the change is found to be less than the maximum allowed change, the TCP will be updated.
Page 66
With this option, neither the z-dimension of the tool, nor the orientation of the tool, is updated. CAUTION This is not a recommended BullsEye method. [\ElapsedTime] Data type: num This parameter will return the overall time required to complete the QuickCheck plus any TCP updating time.
Page 67
Execution in stepwise mode is not supported. Error handling Known errors are raised as BullsEye error codes in the optional argument Status. These codes can be handled outside the instruction with standard conditional statements. BullsEye error codes are not n constants handled in a RAPID error handler.
Usage BEDebugState is used to control the debug log detail level. Normally only limited information in stored in the BullsEye log files. With this instruction, more detailed information is recorded to help advanced users determine the cause of an error.
BERefPointer Tool [\UserInterface] [\Status] [\TLoad] Tool Data type: tooldata Tool is the tooldata instance that will be evaluated. The tool must be initialized in the BullsEye Collection with the instruction BESetupToolJ before BERefPointer can be used. [\UserInterface] Data type: string An optional user interface may be specified here.
Page 70
6 RAPID reference 6.2.3 BERefPointer - BullsEye reference pointer Continued string st4, be_status Condition) <body of procedure> ENDPROC [\Status], <INOUT> Data type: be_status This optional parameter returns the status code. A status code other than 1 indicates a problem in execution. For more information on status codes, see...
Page 71
Execution in stepwise mode is not supported. Error handling Known errors are raised as BullsEye error codes in the optional argument Status. These codes can be handled outside the instruction with standard conditional statements. BullsEye error codes are not n constants handled in a RAPID error handler.
6.2.4 BESetupToolJ - BullsEye setup tool joint move 6.2.4 BESetupToolJ - BullsEye setup tool joint move Usage BESetupToolJ is used to define a TCP and add the tool to the BullsEye collection. The scanning behavior is dictated by the parameters passed into the instruction. Basic examples BESetupToolJ jtApprPoint, jtStartPos,15,tdMigDefault, scanBullsMig, devYokeUp,v200,fine,tTestTemp;...
Page 73
Technical reference manual - RAPID Instructions, Functions and Data types. Tool Data type: tooldata Tool is the tooldata instance that is to be added to the BullsEye collection. Continues on next page Application manual - BullsEye 3HAC050989-001 Revision: C...
Page 74
TRUE. For example, if the robot is mounted on a rotating tower with linear carriage movement on the boom, then it is possible that the BullsEye scanning device could be mounted to the first link, and the robot mounted to the second link.
Page 75
- RAPID Instructions, Functions and Data types. Program execution The tool is added to the BullsEye collection along with all of the data that is passed into the instruction. BullsEye will then perform a scan sequence to determine the TCP of the tool.
Page 76
6 RAPID reference 6.2.4 BESetupToolJ - BullsEye setup tool joint move Continued [ StartPoint ':='] < expression (IN) of jointtarget > ',' [ TcpExtens ':='] < expression (IN) of num > [ ToolDesign ':=' ] < expression (IN) of be_tooldesign > ',' [ Scan ':=' ] <...
BETcpExtend is used to vary the TCP along its z-axis. The instruction may be used to modify electrode stick-out for a tool that has already been set up in BullsEye. There is no need to re-run the BullsEye initialization and setup routines after making a change with BETcpExtend.
Page 78
Not supported. Error handling Known errors are raised as BullsEye error codes in the optional argument Status. These codes may be handled outside the instruction with standard conditional statements. BullsEye error codes are not ERRNO constants handled in a RAPID error handler.
6 RAPID reference 6.2.6 BEUpdateTcp - BullsEye update TCP 6.2.6 BEUpdateTcp - BullsEye update TCP Usage BEUpdateTcp is used to measure and update the TCP of a tool that has been previously initialized and setup with BESetupToolJ. Basic examples BEUpdateTcp tTestTemp;...
Page 80
Execution in stepwise mode is not supported. Error handling Known errors are raised as BullsEye error codes in the optional argument Status. These codes may be handled outside the instruction with standard conditional statements. BullsEye error codes are not ERRNO constants handled in a RAPID error handler.