BullsEye Installation

I am trying to set up and learn how to use ABB BullsEye for TCP calibration on a robot system that was physically installed before I started working in the lab.

The robot, BullsEye hardware, and laser welding setup already exist, but nobody in my company currently knows how the BullsEye system was configured or how to use it. I was asked to figure out the setup and operation process.

I found an ABB manual at https://library.e.abb.com/public/0bc1b97ce9e6d7bbc1257b4400528371/505942-102.pdf that describes the software installation process. In section 4.3, it says that the following modules need to be loaded:

  • BullsEye.sys

  • BE_text.sys

  • TCPdata.mod (or TCP_Data.mod)

The manual explains loading these modules into the controller, but I am unsure where to obtain the correct files and how to install/configure them for our system.

I asked my coworkers if they had any BullsEye-related files or documentation, but nobody seems to have them.

While searching online, I found a ZIP file on a forum containing BullsEye.sys. When I tried to open it in RobotStudio, I received the message:

“Module is encoded: BullsEye.sys”

But for the BE_text file I can open it

I am not sure if this is normal behavior for ABB system modules or if I downloaded the wrong file.

My questions are:

  1. Where can I obtain the correct BullsEye software files (BullsEye.sys, BE_text.sys, TCPdata.mod/TCP_Data.mod)?

  2. Is it normal that BullsEye.sys is encoded and cannot be opened in RobotStudio?

  3. What is the correct procedure to install and configure BullsEye from the beginning?

  4. How can I verify that the BullsEye option is properly installed and working on an ABB controller?

  5. After installation, what is the normal workflow for performing TCP calibration using BullsEye?

The robot is an ABB IRB 1200 used for a laser welding application. I am trying to set up the BullsEye system and understand the complete process because there is currently no one in my company familiar with it.

Any guidance, documentation, or examples would be greatly appreciated. Or any resources that I can look into will also help a lot!!! Thank you so much

Thank you.

This is a closeup view of the Bullseye

That is a very old application manual. Pre installation manager licensed options by the looks of it since it wants you to install from a floppy. Now, bullseye is a RobotWare licensed option. Make sure you have the license and that the option is selected in installation manager. The associated bullseye modules such as BullsEye.sys will be installed automatically. It is normal that BullsEye.sys is encoded. ABB does not want anyone to view the source code.

Normal workflow would be to have a PROC for tool TCP setup, one for TCP update, and one for checking TCP using the built-in bullseye routines.

Hi, thank you so much I really appriciate it! I have the license, and I just installed the BullsEye from the Add-ins option in RobotStudio. However, the only thing I noticed changing is it added the BullEyes file in the RobotWare Add-ins and nothing new, do you have any idea what is the next step, please help me I really appriciate it. Thank you so much!!! I also trying to look over the manual that they included when I download the Bullseye file:///C:/Users/lanvy/AppData/Local/ABB/DistributionPackages2/ABB.BullsEye-1.1.3/Documentation/3HAC089026%20AM%20BullsEye%20RW%207-en.pdf

I read through the software installation part and I saw this oart: In the Options section, browse to Calibration Utilities to find BullsEye. The BullsEye option is selected by default when the add-in is installed. The sub-options, Software Generation, BullsEye 1st generation and FieldBus, EtherNet/IP Scalable I/O are also selected by default.

But I couldn’t find the Calibration Utilities in the Options section. Any idea to help me thank you so much!!

Also I can see the BullsEye in the explorer part in the controller, but when i click into it, they have some files that i couldn’t click on. So

The bullseye robot studio add-in is for omnicore controllers. It looks like you have an IRC5.

See if you can use the following PROCs:

-BESetupToolJ

-BECheckTcp

-BEUpdateTcp

You should have a couple small routines that you can run. One to teach and one to check the tcp.

All you do is teach an approach point and a point where the wire touches the beam. Find the right program and modify those 2 points in the instruction. Play it and at the end you should teach a point on a pointer in the center of the bulleye yolk.

Yes those are the routines in the previous post. Go to the BESetupToolJ and teach the 2 points.

If you encounter singularity errors while running the setup. Rotate the wrist a little around the torch and reteach the second point and run again. It can be tedious sometimes to find the right starting point that gets you through the whole program. All the movements are based off the second points position and robots posture. The first point is just an approach point above the yolk.

I would teach the points in manual and then switch to auto to run it…it can take awhile to set up.

Is it not included in the service menu in the Production manager? if these routines are not in the service menu, i would add so you can run them in auto.

I just include a call to BECheckTcp at the very beginning of my 1st routine after the torchclean call.

If there is a difference, i can update the tcp on the pendant when it indicates there is a difference between what it measured and whats on file OR i take the gooseneck off and go straighten it in our gooseneck jig and run the tcpcheck again.

Read the manual in regards to the tcpcheck…there are a couple optional arguements you can use when checking and updating

Just wanted to share this in case no one has mentioned it!

when you get to BETOOLSETUP you will need to:

Teach two jointtarget:

  1. Jointtarget (approach - vertically above the beam with TCP)
  2. Jointtarget (barely touch/break the beam with TCP)

Sharing my check list that I used:

Do you see any laser beams on the bullseye and is it powered on? Do you have it wired to the controller correctly and getting feedback?

NOTE: When the BullsEye is correctly wired, the LED on the I/O board corresponding to the input should be illuminated only when the beam is broken.

Do you have the IO configured like the whole ‘change of state’ process that has to happen? (I had to have technical support help me through that process as my IO wasn’t changing when I broke the beam..).

also sharing my bullseye notes below:

!! BE_DEVICE: DATA TYPES BELOW (devup and devdown)

! ! “Signal name”

! ! SenseHigh

! !------- [SlowMoveSpeed]

! ! v_tcp

! ! v_ori

! ! v_leax

! ! v_reax

! !------- [FastMoveSpeed]

! ! v_tcp

! ! v_ori

! ! v_leax

! ! v_reax

! !—

! ! Repeatability

! ! Inverted

! ! MovedWithRobot

! ! RefPoint

! CONST be_device devUp:=[“di_BE_SENSE1_Robot”,TRUE,[#,#,#,#],[#,#,#,#],#,FALSE,TRUE,FALSE];

! CONST be_device devDown:=[“di_BE_SENSE1_Robot”,TRUE,[#,#,#,#],[#,#,#,#],#,TRUE,TRUE,TRUE];

!! BE_SCAN: DATA TYPES BELOW

! ! Number of scans

! ! BodyScan Margin

! ! WireScan Margin

! ! TwistAngle

! ! TiltAngle

! ! InitPatternRad

! **Example** CONST be_scan scanMyTool:=\[1,2,3,1,2,3\];

!! BE_TOOLDESIGN: DATA TYPES BELOW

! ! OrientBody

! ! MaxBodyDia =

! ! MinBodyDia

! ! ScanRange

! ! RangeShift

! ! SliceGap

! ! ScanWire

! ! OffsEndSearch

! ! WireDia

! !------- [SlowMoveSpeed]

! ! v_tcp

! ! v_ori

! ! v_leax

! ! v_reax

! !------- [FastMoveSpeed]

! ! v_tcp

! ! v_ori

! ! v_leax

! ! v_reax

! CONST be_tooldesign tdMyTool:=[TRUE,#,#,#,#,#,FALSE,FALSE,#,[15,25,100,100],[100,100,100,100]];

Hello, this is really helpful thank you so much!!! So the BullsEye is working cause I can see the laser beams and there is a little light turning on if I block the laser beam and turn off if if I dont block it. I tried to look into the controller IRC5 to see if there is a 0 or 1 output put seems like the only signal is the light turning on and off. I found the BETOOLSETUP in RobotStudio and the controller IRC5 already, but I dont know how to teach the jointtarget. Is it create the target then add it to the path like what we do normally? Or I need to do something specifically to find those points? Sorry for asking a lot of questions, I just have no idea about these system.

Hi thank you so much for helping me, I saw it in the controller and RobotStudio also the IRC5 controller. But seems like it not working, I click the BEToolCheck and it move to a position then appear Path limitation then I trynna click my own path which is working fine and it also appear as Path limitation. Now whenever I wanna run any path, it just move to the position that I mentioned before, the BEToolCheck position. Any idea how to fix it? Thank you so much, I really appriciate your help.

Hi thank you so much! This is super helpful. I just wonder about the 2 points that you mentioned, is it just a random points near the bullseye or any specific position that i should use to teach the robot these 2 points. Thank you for Application manual, I will read it.

the points of your choosing. I usually program the second point in the middle with the tip of my wire in the laser. for the first point, i just move in the z 10 to 12 inches and modify…good to go.

Are you trying to modify these points in robotstudio? I would perform the setup on the actual robot.

Move the robot to your target position (center of yolk with tip of wire in the laser), highlight the second position in the BESetupToolJ instruction on the pendant, modify.

Move in the x up to to the first position, highlight the first position in the BESetupToolJ instruction on the pendant, modify.

Move the program pointer to the routine and play it through in manual. At the end of the setup,it will ask you to move the robot to the pointer and finish the setup.

I dont believe you have to modify the points in the tcpcheck routine.. the points are the same declared points you modified in the setup.

Its all in the manual i shared… its a little newer then the bullseye7 manual is. It corresponds closer to the version you have anyway.

Does your whip have a wire brake? I assume you have a torch clean station with a cutter.

Hey thank you so much it works. But I ran to the next problem which is this one. I assuming it is this problem in the manual that you sent me: " The most common problem encountered while running the setup is a joint limit error. Joint limit errors occur when the robot tries to move to a position that is outside the working range of the robot. When this occurs, a new Start Position must be chosen and the BESetupToolJinstruction 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." So from my understanding I need to find the point that it wont make the robot reach their joint limit. But the problem is my lab already mount the Bullseye so I just wonder any tips to find that point without moving the Bullseye? Thank you again for your help, I truly appriciate it!!! Also I dont have a torch clean station with a cutter