We have an application using a special gripper that can hold 3 pieces. We make 3 seperate picks & then place.
We have problems speeding up the 3 picks. Whenever we try to reduce the pick z height or increase the down velocity or retard the vac act we lose some of the pick signals to the gripper (usually the 2nd or 3rd, never the 1st)
We always use the same signal from the controller & redistribute it using our plc in sequence to the appropriate valve block.
In rapid, in between pick statements we use SetGo goVacBlow1,0;
I have tried using the fast ack routine in PPA Utilities but cannot seem to make any difference.
We are currently using a pick height of 60 & an up/down velocity of v200 which is very sedate. pick dwell is 0.05, VacAct time 0.01 with a trigg distance of 10. The gripper has to rotate variously between picks & the rotary inertia is 0.008 kgm2
Milun - Why does he have to use the “Other” type for doing this? I am curious because I am working on a double pick application and don’t want to miss anything. Just curious.
The other work area was used because the VacuuOff instruction was already defined there in the RAPID template. The other advantage is that it can easily be set from the PickMaster application (easy to use). It there for customized stuff that you want to do.
See the SetTriggs procedure:
!***********************************************************
!
! Procedure SetTriggs
!
! This routine sets the triggdata for the vacuum signals.
! This will be changed when more than one vacuum ejector
! is used.
!
!***********************************************************
PROC SetTriggs(num Index)
TEST ItmSrcData{Index}.SourceType
CASE PICK_TYPE:
TriggEquip ItmSrcData{Index}.VacuumAct1,0,ItmSrcData{Index}.VacActDelayGOp:=goVacBlow1,1;
CASE PLACE_TYPE:
TriggEquip ItmSrcData{Index}.VacuumRev1,0,ItmSrcData{Index}.VacRevDelayGOp:=goVacBlow1,2;
TriggEquip ItmSrcData{Index}.VacuumOff1,0,ItmSrcData{Index}.VacOffDelayGOp:=goVacBlow1,0;
DEFAULT:
TriggEquip ItmSrcData{Index}.VacuumAct1,0,ItmSrcData{Index}.VacActDelayGOp:=goVacBlow1,1;
TriggEquip ItmSrcData{Index}.VacuumRev1,0,ItmSrcData{Index}.VacRevDelayGOp:=goVacBlow1,2;
TriggEquip ItmSrcData{Index}.VacuumOff1,0,ItmSrcData{Index}.VacOffDelayGOp:=goVacBlow1,0;
ENDTEST
ENDPROC