Example Program 11: MM_S11_Viz_Timer
Program Introduction
Description |
The robot uses a timer to calculate the time taken from establishing the communication to completing picking and placing each time. |
File path |
You can navigate to the installation directory of Mech-Vision and Mech-Viz and find the file by using the |
Project |
Mech-Vision and Mech-Viz projects |
Prerequisites |
|
This example program is provided for reference only. Before using the program, please modify the program according to the actual scenario. |
Program Description
This part describes the MM_S11_Viz_Timer example program.
The only difference between the MM_S11_Viz_Timer example program and the MM_S2_Viz_Basic example program is that MM_S11_Viz_Timer can use a timer to calculate the required time (this code of this feature is bolded). As such, only the feature of using a timer to calculate the required time is described in the following section. For information about the parts of MM_S11_Viz_Timer that are consistent with those of MM_S2_Viz_Basic, see Example Program 2: MM_S2_Viz_Basic. |
NOP
'--------------------------------
'FUNCTION: trigger Mech-Viz
'project and get planned path,add
'a timer to record cycle time
'Mech-Mind, 2023-12-25
'--------------------------------
'clear I50 to I69
CLEAR I050 20
'initialize p variables
SUB P071 P071
SUB P072 P072
SUB P073 P073
'move to robot home position
MOVJ C00000 VJ=50.00
'initialize communication
'parameters (initialization is
'required only once)
CALL JOB:MM_INIT_SOCKET ARGF"192.168.170.22;50000;1"
*LOOP
'reset timer 0
SETTM TM000 TRESET
'start timer 0
SETTM TM000 TSTART
'move to image-capturing position
MOVJ C00001 VJ=50.00 PL=0
'open socket connection
CALL JOB:MM_OPEN_SOCKET
'trigger Mech-Viz project
CALL JOB:MM_START_VIZ ARGF"2;30"
'get planned path, 1st argument
'(1) means getting pose in JPs
CALL JOB:MM_GET_VIZDATA ARGF"1;51;52;53"
'check whether planned path has
'been got from Mech-Viz
'successfully
IFTHENEXP I053<>2100
'add error handling logic here
'according to different error
'codes
'e.g.: I053=2038 means no
'point cloud in ROI
PAUSE
ENDIF
'close socket connection
CALL JOB:MM_CLOSE_SOCKET
'save waypoints of the planned
'path to local variables one
'by one
CALL JOB:MM_GET_JPS ARGF"1;71;61;62"
CALL JOB:MM_GET_JPS ARGF"2;72;63;64"
CALL JOB:MM_GET_JPS ARGF"3;73;65;66"
'follow the planned path to pick
'move to approach waypoint of
'picking
MOVJ P071 VJ=50.00 PL=0
'move to picking waypoint
MOVJ P072 VJ=10.00 PL=0
'add object grasping logic here,
'such as DOUT OT#(1) ON
PAUSE
'move to departure waypoint of
'picking
MOVJ P073 VJ=50.00 PL=0
'move to intermediate waypoint of
'placing
MOVJ C00002 VJ=50.00
'move to approach waypoint of
'placing
MOVL C00003 V=166.6 PL=0
'move to placing waypoint
MOVL C00004 V=50.0 PL=0
'add object releasing logic here,
'such as DOUT OT#(1) OFF
PAUSE
'move to departure waypoint of
'placing
MOVL C00005 V=166.6 PL=0
'move back to robot home position
MOVJ C00006 VJ=50.00
'stop timer 0
SETTM TM000 TSTOP
PAUSE
JUMP *LOOP
END
The workflow corresponding to the above example program code is shown in the figure below.
The table below describes the feature of using a timer to calculate the required time.
Feature | Code and description |
---|---|
Calculate the time taken from establishing the communication to completing picking and placing each time by looping |
The above code indicates that the program loops through the code between “*LOOP” and “JUMP *LOOP”.
The above code resets the TM000 timer to 0.
The above code starts running the TM000 timer.
The above code stops the TM000 timer. You can view the value of the TM000 variable on the teach pendant, as shown in the image below. The TM000 value is 120, with the unit being 0.01 seconds. |