I have developed some BG Logic that prevents our operators from resetting Collision Detect Alarms. Our robots are setup to where you have to log in to be able to turn ON/OFF any I/O's. I have used this to my advantage.
Currently we run R-30iA, R-30iB, and R-30iB+ controllers in-house.
I setup Collision Guard to trigger an output once a Collision Detect has occurred. DO[99] is what I'm using. Below is the logic that I have running in the background. Here is the dirty.....Once it sees that DO[99] is ON, it will turn ON DO[100] Once the IF statement sees that DO[100] is ON, it will jump to alarm. Then is when a technician would have to log in to turn OFF DO[100] in order to disable the alarm. (simple I know) I am able to successfully run this in the background on our R-30iB+ robots. However, I receive a Invalid Item for Mixed Logic alarm when I go to run this same logic on our R-30iA robots. No, I'm not saving onto a flash drive and loading it onto another controller. I am implying them on each robot individually.
Can someone enlighten me on why R-30iB+ will let me run this logic with no errors but R-30iA will not? I have tried 2 different methods with the same disappointing result I am aware that you have to run the parentheses while running BG Logic
Method 1: This is the logic I have that works on R-30iB+
IF (DO[99:COLLISION]=ON), DO[100:COLLISION RECOVERY]=(ON)
IF (DO[100:COLLISION RECOVERY]=ON), JMP LBL [1]
JMP LBL [2]
LBL [1]
UALM [12]
LBL [2]
Method 2:
IF (DO[99]=ON), JMP LBL [3]
JMP LBL [2]
LBL [1]
UALM [12]
LBL [2]
JMP LBL [4]
LBL [3]
DO [100]=ON
IF (DO [100]=ON), JMP LBL [1]
LBL [4]