Anyone here good with ABB IRC5? Trying to figure out how the integrators did this

hardaysknight

Lifetime Supporting Member
Join Date
Dec 2015
Location
Southeast USA
Posts
117
We run multiple products on our machines, which means we have multiple robot programs that we swap to, due to the points for the robots having to be different.



Our PLC sends ~3 integers to the robot for I/O. One of these integers is a product number. If we send a "5" in that integer, the robot changes programs (the robot loads a different *.pgf file stored on the robot controller). However, I see this integer changing in Studio5000, but there is nothing that I could see in the ABB EIO file to allow the robot to do this. It currently works, but I have no idea how.



I'm attaching a screenshot of where we send the robot program in the PLC, and the ABB EIO file if anyone wants to take a look at it.

PLC.png
 

Attachments

  • EIO.txt
    11.6 KB · Views: 26
My guess is that the have grouped several boolean's together!


Look at the pendant I/O display and look for group input. You can choose to group multiple boolean inputs into a group and interpret it as a number in IRC. It looks like the length is 4 in this case suggesting that you have a total of 15 program numbers.
 
My guess is that the have grouped several boolean's together!


Look at the pendant I/O display and look for group input. You can choose to group multiple boolean inputs into a group and interpret it as a number in IRC. It looks like the length is 4 in this case suggesting that you have a total of 15 program numbers.




Yeah that's what I thought, however, there is no group inputs.
 
If there are no group inputs then my second guess is that the robot programmer did not know about group inputs and just made the conversion from bool to num in the code.


From the information you provided Local_IO_0_DI11 and the other unnamed ios from their on up seems like the match the plc reference. What is their use in the rapid program? If you cross reference those ios in the rapid code perhaps you have your answer! But without having access to all of the code its just a guess.
 
If there are no group inputs then my second guess is that the robot programmer did not know about group inputs and just made the conversion from bool to num in the code.


From the information you provided Local_IO_0_DI11 and the other unnamed ios from their on up seems like the match the plc reference. What is their use in the rapid program? If you cross reference those ios in the rapid code perhaps you have your answer! But without having access to all of the code its just a guess.




They actually aren't being used. Everything goes through EthernetIP. The integer that the PLC sends is EthernetIP as well.
 
I guess I should mention that the HMI where we select the product type is using Iconics Genesis64, and the way we load different products is via an integrator's script that I don't have access to.



There is also an ABB IRC5 OPC server on the HMI, that I believe is only for reading data from the robots, not writing data.



If we load product type "C", the integer "N037[25]" in the PLC changes to a value of "3" which then gets sent to the "X16_ROBOT_MARKING.Data[3]" integer in the PLC, which is then sent to the robot via EthernetIP with a length of 4 (so a maximum of 15 different product types). However, there are no group inputs on the robot, and all of the EthernetIP I/O on the robot are being used for other things, or not referenced at all.



There's also no "Load" instructions in the RAPID program anywhere in the robot to load a separate .pgf program.



The only thing I can think of is the HMI script is somehow sending a load program command to the robot via the IRC5 OPC server.
 
A module listing(s) would tell if they made a routine to examine multiple discrete inputs and set a product number. I've done quite a bit of ABB programming but didn't use the Load instruction, or don't recall using it.

PROC and FUNC are stored in text files with .MOD extensions. PROC routines will look like this:

PROC x140_BlowoffG2_ToPnc()
!we assume that the plc knows the robot is at the proper start position
nSetPosNo:=(0);
SetGO goPosNum,nSetPosNo;
MoveJ P140_BlowOffG2_Pnc,RapidSpeed,z10,EOATcenter;
nSetPosNo:=(140);
SetGO goPosNum,nSetPosNo;
ERROR
TPWrite "x140 encountered error: ",\num:=ERRNO;
ExitCycle;
ENDPROC

FUNC will look similar but will include a RETURN statement.

Look for .MOD files in the backup.
 
Last edited:
A module listing(s) would tell if they made a routine to examine multiple discrete inputs and set a product number. I've done quite a bit of ABB programming but didn't use the Load instruction, or don't recall using it.

PROC and FUNC are stored in text files with .MOD extensions. PROC routines will look like this:

PROC x140_BlowoffG2_ToPnc()
!we assume that the plc knows the robot is at the proper start position
nSetPosNo:=(0);
SetGO goPosNum,nSetPosNo;
MoveJ P140_BlowOffG2_Pnc,RapidSpeed,z10,EOATcenter;
nSetPosNo:=(140);
SetGO goPosNum,nSetPosNo;
ERROR
TPWrite "x140 encountered error: ",\num:=ERRNO;
ExitCycle;
ENDPROC

FUNC will look similar but will include a RETURN statement.

Look for .MOD files in the backup.

I’ve done a bit of programming too. .pgf files are program files that contain the .mod files. The machine loads different .pgf files depending on the product being run. I know this for a fact because there are certain cell conditions that have to be met for the automatic loading of the .pgf file to happen. When these conditions aren’t met, and the operator tries to load a new product type, I have to go and manually load the .pgf file.

In order to see for your self, when on the production window on the teach pendant, hit the button on the bottom left corner that says “load program”, and it will open up a file window that will allow you to open a different .pgf file.
 

Similar Topics

I installed Drivewindow Light 2 v.2.92 and am having trouble getting fully connected to an ABB ACH 550 drive. I made an adapter following this...
Replies
3
Views
5,792
I received an email from a student with the following code attached. This is supposed to control a floodgate system, and supposed to be written...
Replies
23
Views
781
Hi all, I am experienced with Rockwell by have recently encountered a Bosch PLC. It’s an IndraControls XM21 V14. I installed the software and...
Replies
2
Views
774
Hi there, I need to work on a GE series 5 PLC which need DOS based Logic Master 5, it seems like nowhere I can purchase this software anymore...
Replies
2
Views
954
I can't seem to increase torque to the desired level w/o the motor just sitting there shaking itself to death. I can only get 80 foot lbs after...
Replies
23
Views
4,834
Back
Top Bottom