Programme d’exemple 7 : MM_S7_Viz_SwitchTCP
Présentation du programme
Description |
Le robot démarre le projet Mech-Viz, obtient le résultat de planification de trajectoire, puis change l’outil en fonction de l’identifiant d’outil du point de prise pour effectuer la prise et la dépose. |
Chemin du fichier |
Vous pouvez accéder au répertoire d’installation de Mech-Vision et Mech-Viz et trouver le fichier en utilisant le chemin |
Projets |
Projets Mech-Vision et Mech-Viz |
Prérequis |
|
| Ce programme d’exemple est fourni uniquement à titre de référence. Avant d’utiliser le programme, veuillez le modifier en fonction du scénario réel. |
Description du programme
Cette section décrit le programme d’exemple MM_S7_Viz_SwitchTCP.
| La seule différence entre le programme d’exemple MM_S7_Viz_SwitchTCP et le programme d’exemple MM_S2_Viz_Basic est que MM_S7_Viz_SwitchTCP peut changer l’outil selon l’ID d’outil(cet code de cette fonctionnalité est en gras). Ainsi, les fonctionnalités du programme MM_S7_Viz_SwitchTCP similaires à celles de MM_S2_Viz_Basic ne sont pas décrites dans cette section. Pour plus d’informations sur ces fonctionnalités, voir Programme d’exemple 2 : MM_S2_Viz_Basic. |
DEF MM_S7_Viz_SwitchTCP ( )
;---------------------------------------------------
; FUNCTION: trigger Mech-Viz project and get
; planned path, switch TCP according to the label
; Mech-Mind, 2023-12-25
;---------------------------------------------------
;set current tool no. to 1
BAS(#TOOL,1)
;set current base no. to 0
BAS(#BASE,0)
;move to robot home position
PTP HOME Vel=100 % DEFAULT
;initialize communication parameters (initialization is required only once)
MM_Init_Socket("XML_Kuka_MMIND",873,871,60)
;move to image-capturing position
LIN camera_capture Vel=1 m/s CPDAT1 Tool[1] Base[0]
;trigger Mech-Viz project
MM_Start_Viz(2,init_jps)
;get planned path, 1st argument (1) means getting pose in JPs
MM_Get_VizData(2,pos_num,vis_pos_num,status)
;check whether planned path has been got from Mech-Viz successfully
IF status<> 2100 THEN
;add error handling logic here according to different error codes
;e.g.: status=2038 means no point cloud in ROI
halt
ENDIF
;save waypoints of the planned path to local variables one by one
MM_Get_Pose(1,Xpick_point1,label[1],toolid[1])
MM_Get_Pose(2,Xpick_point2,label[2],toolid[2])
MM_Get_Pose(3,Xpick_point3,label[3],toolid[3])
;switch TCP according to the received toolid
;reset tool signals according to received toolid
switch toolid[vis_pos_num]
CASE 1
TOOL_DATA[1]=tool_1
;reset tool signal
CASE 2
TOOL_DATA[1]=tool_2
;reset tool signal
DEFAULT
;add handling logic here if the toolid is invalid
;reset tool signal
halt
endswitch
;follow the planned path to pick
;move to approach waypoint of picking
LIN pick_point1 Vel=1 m/s CPDAT7 Tool[1] Base[0]
;move to picking waypoint
LIN pick_point2 Vel=0.3 m/s CPDAT8 Tool[1] Base[0]
;add object grasping logic here, such as "$OUT[1]=TRUE"
switch toolid[vis_pos_num]
CASE 1
halt
;open tool signal
CASE 2
halt
;open tool signal
DEFAULT
halt
endswitch
;move to departure waypoint of picking
LIN pick_point3 Vel=1 m/s CPDAT9 Tool[1] Base[0]
;move to intermediate waypoint of placing
PTP drop_waypoint CONT Vel=100 % PDAT2 Tool[0] Base[0]
;move to approach waypoint of placing
LIN drop_app Vel=1 m/s CPDAT3 Tool[0] Base[0]
;move to placing waypoint
LIN drop Vel=0.3 m/s CPDAT4 Tool[0] Base[0]
;add object releasing logic here, such as "$OUT[1]=FALSE"
switch toolid[vis_pos_num]
CASE 1
halt
;reset tool signal
CASE 2
halt
;reset tool signal
DEFAULT
halt
endswitch
;move to departure waypoint of placing
LIN drop_app Vel=1 m/s CPDAT3 Tool[0] Base[0]
;move back to robot home position
PTP HOME Vel=100 % DEFAULT
END
Le flux de travail correspondant au code du programme d’exemple ci-dessus est présenté dans la figure ci-dessous.
Le tableau ci-dessous décrit le code en gras.
| Fonctionnalité | Code et description | ||
|---|---|---|---|
Obtenir la trajectoire planifiée |
L’ensemble de l’instruction indique que le robot obtient la trajectoire planifiée depuis le projet Mech-Viz.
|
||
Stocker la trajectoire planifiée |
L’instruction entière “MM_Get_Pose(1,Xpick_point1,label[1],toolid[1])” stocke le TCP, l’étiquette et l’ID d’outil du premier point de passage dans les variables spécifiées.
|
||
Changer l’outil en fonction de l’ID d’outil |
toolid[vis_pos_num] indique l’ID d’outil du point de prise. Vous pouvez déterminer l’outil à utiliser lorsque le robot se déplace vers la pose cible (point de prise) en fonction de la valeur de la variable toolid[vis_pos_num], c’est-à-dire changer l’outil selon l’ID d’outil. La description du code ci-dessus est présentée ci-dessous.
Lorsque le robot se déplace vers le point de prise, vous pouvez activer les signaux DO correspondant à l’ID d’outil, comme montré dans le code suivant.
Lorsque le robot se déplace vers le point de dépose, vous pouvez désactiver et réinitialiser les signaux DO correspondant à l’ID d’outil, comme montré dans le code suivant.
|