1: CALL PI_OPEN_COMMUNICATION ; 2: CALL PI_RUN ; 3: IF (R[151:pi status]<>0) THEN ; 4: MESSAGE[Not in robot mode] ; 5: JMP LBL[2] ; 6: ENDIF ; 7: UFRAME_NUM=0 ; 8: UTOOL_NUM=1 ; 9: !Fill in correct setup id ; 10: R[1:setup]=3 ; 11: !Fill in correct product id ; 12: R[2:product]=2 ; 13: !Fill in max detection retries ; 14: R[3:retries]=5 ; 15: CALL PI_CONFIGURE(R[1:setup],R[2:product]) ; 16:J P[1:detect] 100% CNT100 ; 17: CALL PI_DETECTION_WITH_RETRIES(R[3:retries]) ; 18: CALL PI_WAIT ; 19: LBL[1] ; 20: !Object found ; 21: IF (R[150:pi object status]=20) THEN ; 22: CALL PI_GET_PICK_POINT_DATA ; 23:J P[2:above bin] 100% CNT100 ; 24: !Move to pre pick pose ; 25:L PR[51:pi pose] 100mm/sec CNT100 Tool_Offset,PR[1:pre pick offset] ; 26: !Move to pick pose ; 27:L PR[51:pi pose] 100mm/sec FINE ; 28: !Add grasping logic ; 29: !Move to post pick pose ; 30:L PR[51:pi pose] 100mm/sec CNT100 Offset,PR[2:post pick offset] ; 31:L P[2:above bin] 100mm/sec CNT100 ; 32:J P[1:detect] 100% CNT100 ; 33: CALL PI_DETECTION_WITH_RETRIES(R[3:retries]) ; 34:J P[3:drop off] 100% FINE ; 35: !Add release logic ; 36:J P[1:detect] 100% CNT100 ; 37: CALL PI_WAIT ; 38: ELSE ; 39: !Empty ROI ; 40: IF (R[150:pi object status]=23) THEN ; 41: MESSAGE[ROI is empty] ; 42: JMP LBL[2] ; 43: !No object found ; 44: ELSE ; 45: MESSAGE[No object found] ; 46: CALL PI_SAVE_SCENE ; 47: JMP LBL[2] ; 48: ENDIF ; 49: ENDIF ; 50: JMP LBL[1] ; 51: LBL[2] ; END