I am sorry if this comes off confusing, or is way too much/ Too little information. This cell was coded by 3 different companies before someone could get it right, and that was decade before I took over this roll just adding to the learning curve.
I have been trying to diagnose a crash between two robots, each one has an interference cube (Cube3) set up for this area of shared space.
1) As I understand it, there is a constant (Built-in) Input and Output address associated but I am not sure what is should be; I have EXT OUT #30084 and Specific Out #50082 both with InCube3 as a comment. There are also 2 inputs IN45 and IN70 with Cube3Prohibit comments.
On my first look through the robot jobs, neither one is ever using the inputs above as a step in the code but the PLC (Mits) does have I/O that responds to the cube status.
Robot 1 (SOUT #50082) > PLC { X60C > Y58C} > Robot 2 [IN 45], I could not determine exactly if the Out #30084, or IN 70 were also coming from the PLC.
2) My understanding of the cubes is that the effect would be global reaching and job agnostic, but since this was not the case, I tried to use the PLC to set a HOLD condition if ever both robots reported InCube. This brought up a very unexpected result. If R1 was in cube before R2 the HOLD worked correctly, but if R2 were in first the InCube3 signal from R1 would never come on in the PLC.
So I began looking at the CIO ladder in R1 and found a most curious bit of code.. See Attached, the addresses represent the address in the robot; i.e. M7036 = #70036
This code is in the mostly found SYSTEM LADDER section, and seems to be very intentionally designed to Mute the InCube3 signal if the other robot was there first. This means that MOTOMAN created this section of code, and that I cannot change it. The only USER LADDER section of that code is the OUT #30084 rung.
So now I am stuck as what the best approach is between these robots, It doesn't help that I have roughly 30 min / day to actually work with them without messing up production schedules.