MotoSight 3D (MS3D) with Canon comes with an optional MotoPlus app called MOVCHK. The MOVCHK function serves two purposes:
- Singular Point Passage Processing
This function allows the robot to pass through singular postures at the specified maximum speeds of the axes while avoiding alarms such as "excessive segment" and "interpolated action unable".
- Pre-operation Check Processing
This function performs the pre-operation interference, pulse limit, and interpolated action unable checks between the entire robot and a registered obstacle model using an entered target hand position of the robot. This eliminates alarms from the interference, pulse limit, and interpolated action unable checks during the operation.
The MOVCHK Function Manual can be found here.
Below is a sample job that uses the MOVCHK instruction to check in advance that it is possible to move from a start position to the recognition result and then uses the INCMOV instruction for executing the path to the target point. There is additional logic added to ask for another pick candidate if the current option is not possible and movement recovery depending on when the error happens in the path execution.
NOP
'RECOGNITION RESULTS
SET B000 95
'TOOL NUMBER
SET B001 1
'TASK ID
SET I000 1
'
INCSET SNo=1 Path=2 P1_no=91 P2_no=92 P3_no=93 V1=500 VR1=360 V2=250 VR2=180
'
'PALLET RECOGNITION
MS3PALp scId=1 PIndex=0 taskId=I000
'
*RETRY
'
'WORKPIECE RECOGNITION
MS3STRTP scId=1 taskId=I000
'
'GET RECOGNITION RESULTS
MS3RES scId=1 WIndex=B000 taskId=I000 UF_NO=1 toolNo=B001
'
'CAMERA ERROR CHECKING
IFTHEN I085<>0
IFTHEN I085=1
'NO ELIGIBLE PART FOUND
JUMP *RETRY
ELSEIF I085=2
'BIN IS EMPTY
JUMP *END
ELSEIF I085=3
SETUALM 8000 "CANT JUDGE EMPTY BIN" 1 SMODE=2
ELSEIF I085=4
SETUALM 8000 "VISION TIMED OUT" 1 SMODE=2
ELSEIFEXP MS3statusPC1=5
SETUALM 8000 "BIN RECOG FAILED" 1 SMODE=2
ELSE
SETUALM 8000 "UNKNOWN VISION ERROR" 1 SMODE=2
ENDIF
ENDIF
'
*NEXTPOSE
MOVJ P091 VJ=100.00
'CNVRT RECOGNITION RESULTS TO RF
CNVRT PX092 PX095 RF TL#(1)
CNVRT PX093 PX096 RF TL#(1)
'CHECK PATH FOR SYSTEM ALARMS
MOVCHK SNo=1 cLV=0 Margin=0
IF ( B102<>1 ) THEN
'CURRENT POSE UNREACHABLE
'GET NEXT POSE
MS3NEXTP scId=1 taskId=I000
MS3RES scId=1 WIndex=B000 taskId=I000 UF_NO=1 toolNo=B001
JUMP *NEXTPOSE
ENDIF
'EXECUTE PATH
INCMOV SNo=1 UNTIL=0
IF ( B100<>1 ) THEN
'ERROR IN PATH EXECUTION
IF (B100>=12 AND B100 <=16 ) THEN
'FAILED IN SECOND PATH
'RETURN TO APPROACH POSITION
'BEFORE RETURNING TO START
MOVL P092 V=500.0
ENDIF
'RETURN TO PATH START POSITION
MOVL P091 V=500.0
JUMP *RETRY
ENDIF
'ROBOT AT PICK POSIITON
Comments
0 comments
Please sign in to leave a comment.