Hello,
I am setting up a double pick application and I have noticed that the robot pauses for about 100ms between the two picks. Is there any way to get rid of this delay?
Thank you,
Erik
Hello,
I am setting up a double pick application and I have noticed that the robot pauses for about 100ms between the two picks. Is there any way to get rid of this delay?
Thank you,
Erik
Hello,
To achieve a high pick rate in a double pick application (pick/pick/place) you need to modify the Rapid code as follows.
1, Add the utility module to your rapid program. The utility.mod is attached to this reply.utility.zip
PROC main()
ReadCnv;
InCoordRout:=FALSE;
InitSafeStop;
InitSpeed;
WHILE TRUE DO
SetDO ppaExe,0;
WaitForExeOrder:=TRUE;
IF RemoteIPNode<>“” THEN
SCWriteToNode:=RemoteIPNode,WaitForExeOrder;
ENDIF
WaitDO ppaExe,1;
%RoutineName%;
ENDWHILE
ERROR (PPA_JUMP_MOVE)
IF ERRNO = PPA_JUMP_MOVE THEN
ClearPath;
GotoRestartPos;
RETRY;
ELSEIF ERRNO=ERR_SC_WRITE THEN
TRYNEXT;
ENDIF
ENDPROC
3, Modify the pick routine like this,
PROC Pick(num Index)
InCoordRout:=TRUE;
WObjPick:=ItmSrcData{Index}.Wobj;
GetItmTgt ItmSrcData{Index}.ItemSource,PickTarget;
TriggLConc,RelTool(PickTarget.RobTgt,0,0,-ItmSrcData{Index} .OffsZ),MaxSpeed,ItmSrcData{Index}.VacuumAct1,z20,GripperWO bj:=WObjPick;
MoveLConc,PickTarget.RobTgt,LowSpeed,z5Inpos:=ItmSrcData{I ndex}.TrackPoint,GripperWObj:=WObjPick;
GripLoad ItemLoad;
IF QuickAck(Index,PickTarget)=FALSE THEN
TriggL RelTool(PickTarget.RobTgt,0,0,-ItmSrcData{Index}.OffsZ),LowS peed,ItmSrcData{Index}.Ack,z20,GripperWObj:=WObjPick;
ELSE
MoveL RelTool(PickTarget.RobTgt,0,0,-ItmSrcData{Index}.OffsZ),LowS peed,z20,GripperWObj:=WObjPick;
ENDIF
InCoordRout:=FALSE;
ENDPROC
4, Change the PickPlaceSeq routine to run a pick/pick/place operation,
PROC PickPlaceSeq()
Pick PickIndex1;
Pick PickIndex1**;**
Place PlaceIndex1;
! Place PlaceIndex2;
ENDPROC
That should do it,
Roger.
Thanks! Works correctly and we did cut down cycle time, by about 100ms.