hi
Im working with an R30iA R1000iA/100F, i am using a vacuum gripper and im programming the "vacuum on", "release part" and "vacuum off" as macro commands, but i need to detect if a part is dropped while the "vacuum on" is on. i have 2 vacuum sensors and a vacuum generator, 1 sensor is more sensitive so it switches the vacuum off and on as it drains. but when the vacuum is on and the second sensor detects no vacuum i need to have the robot hold motion, and if possible give a ualm "vacuum lost", i have no i/o modules, only the the Robots i/o's. what are my options for putting the program on hold so i can simply acknowledge the error and hit cycle start to continue, I'm using BG logic to switch the vacuum gen on and off as the vacuum slowly drains, but i cant get a "ualm" and "hold" into the BG logic.
any help would be appreciated thanks.
Holding program with ualm
-
jariuscs -
January 30, 2015 at 5:16 PM -
Thread is marked as Resolved.
-
-
BG logic programs cannot lock any motion groups, so you can't throw any UALMs, PAUSE statements, etc. in there. I'd use either a condition monitor or a skip condition.
Condition monitor method:
MON_VAC.TP:
WHEN RI[1:vac]=OFF,CALL VAC_OFF ;VAC_OFF.TP:
UALM[1] ;
! restart monitor ;
MONITOR MON_VAC ;your program:
! pick up part ;
! start monitor ;
MONITOR MON_VAC ;
! move to wherever you're going ;
! stop monitor ;
MONITOR END MON_VAC ;Skip condition method:
LBL[1] ;
! pick up part ;
! set skip condition ;
SKIP CONDITION RI[1:vac]=OFF ;
! move somewhere ;
L P[1:somewhere] max_speed FINE Skip,LBL[100] ;
! if we made it here, the vacuum went off ;
UALM[1] ;
! try again?
JMP LBL[1] ;
;
LBL[100] ;
! vacuum stayed on ;Hope this helps.