Programme d’exemple 17 : MM_S17_Vis_ParseLabel

Vous consultez actuellement la documentation pour la dernière version (2.1.2). Pour accéder à une autre version, cliquez sur le bouton "Changer de version" situé dans le coin supérieur droit de la page.

■ Si vous n’êtes pas sûr de la version du produit que vous utilisez, veuillez contacter le support technique Mech-Mind pour obtenir de l’aide.

Introduction du programme

Description

Le robot déclenche l’exécution du projet Mech-Vision pour obtenir le résultat de vision, analyse les étiquettes, puis adopte une méthode de manipulation basée sur l’étiquette pour effectuer la préhension 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 Communication Component/Robot_Interface/YASKAWA/sample/MM_S17_Vis_ParseLabel.

Projet

Projet Mech-Vision (les données doivent exister dans le port labels de l’étape Sortie)

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 partie décrit le programme d’exemple MM_S17_Vis_ParseLabel.

La seule différence entre le programme d’exemple MM_S17_Vis_ParseLabel et le programme d’exemple MM_S1_Vis_Basic est que MM_S17_Vis_ParseLabel peut analyser des étiquettes (le code de cette fonctionnalité est en gras). Par conséquent, seule la fonctionnalité d’analyse des étiquettes est décrite dans la partie suivante. Pour obtenir des informations sur les parties de MM_S17_Vis_ParseLabel qui sont identiques à celles de MM_S1_Vis_Basic, voir Programme d’exemple 1 : MM_S1_Vis_Basic.
NOP
'--------------------------------
'FUNCTION: trigger Mech-Vision
'project and get vision result,
'then parse the label info
'Mech-Mind, 2023-12-25
'--------------------------------
'clear I50 to I69
CLEAR I050 20
'initialize p variables
SUB P070 P070
SUB P071 P071
'set 100mm to z of P070
SETE P070 (3) 100000
'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"
'move to image-capturing position
MOVJ C00001 VJ=50.00 PL=0
'open socket connection
CALL JOB:MM_OPEN_SOCKET
'trigger NO.1 Mech-Vision project
CALL JOB:MM_START_VIS ARGF"1;0;2;30"
'get vision result from NO.1
'Mech-Vision project
CALL JOB:MM_GET_VISDATA ARGF"1;51;52"
'check whether vision result has
'been got from Mech-Vision
'successfully
IFTHENEXP I052<>1100
	'add error handling logic here
	'according to different error
	'codes
	'e.g.: I052=1003 means no point
	'cloud in ROI
	'e.g.: I052=1002 means no
	'vision result
	 PAUSE
ENDIF
'close socket connection
CALL JOB:MM_CLOSE_SOCKET
'save first vision point data to
'local variables
CALL JOB:MM_GET_POSE ARGF"1;71;61;62"
'parse label info received from
'Mech-Vision, eg. "I061=56" will
'decompose into 5 and 6
SET I064 I061
SET I065 I061
'I064=5
DIV I064 10
SET I063 I064
MUL I063 10
'I065=6
SUB I065 I063
IFTHENEXP I064=5
	'add handling logic a
	 PAUSE
ELSE
	'add handling logic b
	 PAUSE
ENDIF
'move to intermediate waypoint of
'picking
MOVJ C00002 VJ=50.00
'move to approach waypoint of
'picking
SFTON P070
MOVL P071 V=166.6 PL=0
SFTOF
'move to picking waypoint
MOVL P071 V=50.0 PL=0
'add object grasping logic here,
'such as DOUT OT#(1) ON
PAUSE
'move to departure waypoint of
'picking
SFTON P070
MOVL P071 V=166.6 PL=0
SFTOF
'move to intermediate waypoint of
'placing
MOVJ C00003 VJ=50.00
'move to approach waypoint of
'placing
MOVL C00004 V=166.6 PL=0
'move to placing waypoint
MOVL C00005 V=50.0 PL=0
'add object releasing logic here,
'such as DOUT OT#(1) OFF
PAUSE
'move to departure waypoint of
'placing
MOVL C00006 V=166.6 PL=0
'move back to robot home position
MOVJ C00007 VJ=50.00
END

Le flux de travail correspondant au code du programme d’exemple ci-dessus est montré dans la figure ci-dessous.

sample17

Le tableau ci-dessous décrit la fonctionnalité d’analyse des étiquettes. Vous pouvez cliquer sur le lien hypertexte du nom de la commande pour en afficher la description détaillée.

Fonctionnalité Code et description

Analyser les étiquettes

La commande MM_GET_POSE stocke le TCP, l’étiquette et l’ID d’outil du point de vision dans les variables P071, I61 et I62 respectivement. Cet exemple suppose que la valeur de la variable I061 est 56.

SET I064 I061
SET I065 I061

Après l’exécution des instructions d’affectation ci-dessus, les valeurs des variables I064 et I065 sont 56.

'I064=5
DIV I064 10
SET I063 I064
MUL I063 10
'I065=6
SUB I065 I063
  • DIV I064 10: Divise la valeur de I064 par 10 et assigne le quotient à I064, ce qui donne la valeur de I064 égale à 5.

  • SET I063 I064: Assigne la valeur de I064 à I063, ce qui donne la valeur de I063 égale à 5.

  • MUL I063 10: Multiplie la valeur de I063 par 10 (5 × 10) et assigne le résultat à I063, ce qui donne la valeur de I063 égale à 50.

  • SUB I065 I063: Soustrait la valeur de I063 de la valeur de I065 (56 - 50) et assigne le résultat à I065, ce qui donne la valeur de I065 égale à 6.

Le code ci-dessus analyse I061 en I064 et I065 (c’est-à-dire que 56 est décomposé en 5 et 6).

Adopter une méthode de manipulation basée sur le résultat de l’analyse de l’étiquette

IFTHENEXP I064=5
	'add handling logic a
	 PAUSE
ELSE
	'add handling logic b
	 PAUSE
ENDIF

Le code ci-dessus indique que si I064 vaut 5, la logique a sera exécutée ; sinon, la logique b sera exécutée. La méthode de manipulation varie en fonction du résultat de l’analyse de l’étiquette. Vous pouvez adopter une méthode de manipulation selon vos besoins métier.

Cette page est-elle utile ?

Veuillez nous indiquer comment améliorer :

Nous accordons de l’importance à votre vie privée

Nous utilisons des cookies pour vous offrir la meilleure expérience possible sur notre site web. En continuant à utiliser le site, vous reconnaissez accepter l’utilisation des cookies. Si vous refusez, un cookie unique sera utilisé pour garantir que vous ne soyez pas suivi ou reconnu lors de votre visite sur ce site.