Programme d’exemple 15 : MM_S15_Viz_GetDoList

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.

Présentation du programme

Description

Après avoir obtenu la trajectoire de prélèvement et les signaux DO, le robot peut effectuer le prélèvement en se déplaçant jusqu’au point de passage de prélèvement et en définissant les signaux DO en boucle. Ce programme d’exemple est utilisé dans des scénarios de dépalettisation, et l’outil utilisé par le robot est un préhenseur à vide à sections multiples.

File path

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/FANUC/sample/MM_S15_Viz_GetDoList.

Project

Projet Mech-Vision et projet Mech-Viz (l’outil est un préhenseur à vide de dépalettisation)

Prerequisites

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_S15_Viz_GetDoList.

Par rapport au programme d’exemple MM_S2_Viz_Basic, ce programme d’exemple ne contient que la modification suivante (le code de cette modification est en gras). Par conséquent, seule la fonctionnalité de gestion des erreurs en fonction des différents codes d’erreur est décrite ci-après. Pour des informations sur les parties de MM_S6_Viz_ErrorHandle qui sont identiques à celles de MM_S2_Viz_Basic, voir Programme d’exemple 2 : MM_S2_Viz_Basic.
   1:  !-------------------------------- ;
   2:  !FUNCTION: trigger Mech-Viz ;
   3:  !project, then get planned path ;
   4:  !and gripper control signal using ;
   5:  !command 210 ;
   6:  !Mech-Mind, 2023-12-25 ;
   7:  !-------------------------------- ;
   8:   ;
   9:  !set current uframe NO. to 0 ;
  10:  UFRAME_NUM=0 ;
  11:  !set current tool NO. to 1 ;
  12:  UTOOL_NUM=1 ;
  13:  !move to robot home position ;
  14:J P[1] 100% FINE    ;
  15:  !initialize communication ;
  16:  !parameters(initialization is ;
  17:  !required only once) ;
  18:  CALL MM_INIT_SKT('8','127.0.0.1',50000,5) ;
  19:  !move to image-capturing position ;
  20:L P[2] 1000mm/sec FINE    ;
  21:  !trigger Mech-Viz project ;
  22:  CALL MM_START_VIZ(2,10) ;
  23:  !get planned path ;
  24:  CALL MM_GET_PLNDT(0,3,51,52,53) ;
  25:  !check whether planned path has ;
  26:  !been got from Mech-Viz ;
  27:  !successfully ;
  28:  IF R[53]<>2100,JMP LBL[99] ;
  29:  !get gripper control signal list ;
  30:  CALL MM_GET_DL(0,0) ;
  31:  !save waypoints of the planned ;
  32:  !path to local variables one ;
  33:  !by one ;
  34:  CALL MM_GET_PLJOP(1,3,60,61,62,63,64,70) ;
  35:  CALL MM_GET_PLJOP(2,3,61,91,92,93,94,100) ;
  36:  CALL MM_GET_PLJOP(3,3,62,121,122,123,124,130) ;
  37:  !follow the planned path to pick ;
  38:  !move to approach waypoint ;
  39:  !of picking ;
  40:J PR[60] 50% FINE    ;
  41:  !move to picking waypoint ;
  42:J PR[61] 10% FINE    ;
  43:  !add object grasping logic here ;
  44:  PAUSE ;
  45:  !set gripper control signal ;
  46:  CALL MM_SET_DL(0) ;
  47:  !move to departure waypoint ;
  48:  !of picking ;
  49:J PR[62] 50% FINE    ;
  50:  !move to intermediate waypoint ;
  51:  !of placing ;
  52:J P[3] 50% CNT100    ;
  53:  !move to approach waypoint ;
  54:  !of placing ;
  55:L P[4] 1000mm/sec FINE Tool_Offset,PR[2]    ;
  56:  !move to placing waypoint ;
  57:L P[4] 300mm/sec FINE    ;
  58:  !add object releasing logic here, ;
  59:  !such as "DO[1]=OFF" ;
  60:  PAUSE ;
  61:  !move to departure waypoint ;
  62:  !of placing ;
  63:L P[4] 1000mm/sec FINE Tool_Offset,PR[2]    ;
  64:  !move back to robot home position ;
  65:J P[1] 100% FINE    ;
  66:  END ;
  67:   ;
  68:  LBL[99:vision error] ;
  69:  !add error handling logic here ;
  70:  !according to different ;
  71:  !error codes ;
  72:  !e.g.: status=2038 means no ;
  73:  !point cloud in ROI ;
  74:  PAUSE ;

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

sample15

Le tableau ci-dessous décrit le code en gras. Vous pouvez cliquer sur l’hyperlien du nom de la commande pour en voir la description détaillée.

Feature Code et description

Obtenir la trajectoire planifiée

  23:  !get planned path ;
  24:  CALL MM_GET_PLNDT(0,3,51,52,53) ;
  • MM_GET_PLNDT: La commande pour obtenir la trajectoire planifiée. Les points de passage Vision Move obtenus par cette commande contiennent, en plus des poses, des données Vision Move et des données personnalisées (le cas échéant), tandis que les points de passage Vision Move obtenus par la commande MM_GET_VIZDATA ne contiennent ni données Vision Move ni données personnalisées.

  • 0: Obtenir la trajectoire planifiée depuis Mech-Viz.

  • 3: Le format des données attendu en retour, à savoir : pose (en positions articulaires), type de mouvement, ID d’outil, vitesse, données Vision Move de Mech-Viz, élément 1 des données personnalisées,…​, élément N des données personnalisées.

  • 51: Le registre numérique R[51], qui stocke le nombre de points de passage renvoyés par le système de vision.

  • 52: Le registre numérique R[52], qui stocke le numéro de séquence du point de passage Vision Move (point de prélèvement) dans la trajectoire.

  • 53: Le registre numérique R[53], qui stocke le code d’état d’exécution de la commande.

Obtenir la liste DO du préhenseur

  29:  !get gripper control signal list ;
  30:  CALL MM_GET_DL(0,0) ;
  • MM_GET_DL: La commande pour obtenir la liste DO du préhenseur.

  • First 0: Spécifier la source des signaux DO, c’est-à-dire obtenir les signaux DO du préhenseur à sections multiples depuis Mech-Viz.

  • Second 0: Obtenir tous les signaux DO du préhenseur planifiés.

Stocker la trajectoire planifiée

  31:  !save waypoints of the planned ;
  32:  !path to local variables one ;
  33:  !by one ;
  34:  CALL MM_GET_PLJOP(1,3,60,61,62,63,64,70) ;
  35:  CALL MM_GET_PLJOP(2,3,61,91,92,93,94,100) ;
  36:  CALL MM_GET_PLJOP(3,3,62,121,122,123,124,130) ;
  • MM_GET_PLJOP: La commande pour stocker les données Vision Move ou les données personnalisées.

  • 1: Stocker le premier point de passage.

  • 3: La valeur du deuxième paramètre dans la commande MM_GET_PLNDT.

  • 60: Le registre de position PR[60], qui stocke la pose du premier point de passage.

  • 61: Le registre numérique R[61], qui stocke le type de mouvement du premier point de passage.

  • 62: Le registre numérique R[62], qui stocke l’ID d’outil du premier point de passage.

  • 63: Le registre numérique R[63], qui stocke la vitesse du premier point de passage.

  • 64: Registres numériques à partir de R[64]. Les données personnalisées du premier point de passage seront stockées de manière séquentielle dans des registres à partir de R[64].

  • 70: Registres numériques à partir de R[70]. Les données Vision Move du premier point de passage seront stockées de manière séquentielle dans des registres à partir de R[70].

L’instruction complète « CALL MM_GET_PLJOP(1,3,60,61,62,63,64,70) » indique que la pose, le type de mouvement, l’ID d’outil, la vitesse, les données personnalisées et les données Vision Move du premier point de passage sont stockés dans les registres spécifiés.

Dans cet exemple, la trajectoire planifiée par Mech-Viz comprend trois points de passage : le premier point est le point d’approche du prélèvement (PR[60]), le deuxième point est le point de prélèvement (PR[61]) et le troisième point est le point de départ du prélèvement (PR[62]). Veuillez stocker la trajectoire planifiée en fonction du projet Mech-Viz réel.

Se déplacer jusqu’au point de prélèvement pour effectuer le prélèvement

  41:  !move to picking waypoint ;
  42:J PR[61] 10% FINE    ;
  43:  !add object grasping logic here ;
  44:  PAUSE ;
  45:  !set gripper control signal ;
  46:  CALL MM_SET_DL(0) ;
  • MM_SET_DL: La commande pour définir la liste DO du préhenseur.

  • 0: Définir tous les signaux DO du préhenseur planifiés.

L’instruction ci-dessus indique que le robot se déplace jusqu’au point de prélèvement (PR[61]) puis exécute la commande MM_SET_DL pour définir les signaux DO du préhenseur afin d’effectuer le prélèvement.

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.