Programme d’exemple 11 : MM_S11_Viz_Timer

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

Le robot utilise un minuteur pour calculer le temps écoulé entre l’établissement de la communication et l’achèvement de chaque opération de prise et de 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/FANUC/sample/MM_S11_Viz_Timer.

Projet

Projets Mech-Vision et Mech-Viz

Prérequis

Ce programme d’exemple est fourni à titre de référence uniquement. 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_S11_Viz_Timer.

La seule différence entre le programme d’exemple MM_S11_Viz_Timer et le programme d’exemple MM_S2_Viz_Basic est que MM_S11_Viz_Timer peut utiliser un minuteur pour calculer le temps requis (le code de cette fonctionnalité est en gras). En conséquence, seule la fonctionnalité de gestion des erreurs en fonction des différents codes d’erreur est décrite dans la partie suivante. 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 and get planned path, ;
   4:  !add a timer to record cycle time ;
   5:  !Mech-Mind, 2023-12-25 ;
   6:  !-------------------------------- ;
   7:   ;
   8:  !set current uframe NO. to 0 ;
   9:  UFRAME_NUM=0 ;
  10:  !set current tool NO. to 1 ;
  11:  UTOOL_NUM=1 ;
  12:  !move to robot home position ;
  13:J P[1] 100% FINE    ;
  14:  !initialize communication ;
  15:  !parameters(initialization is ;
  16:  !required only once) ;
  17:  CALL MM_INIT_SKT('8','127.0.0.1',50000,5) ;
  18:  LBL[1:LOOP] ;
  19:  !reset timer to 0 ;
  20:  TIMER[1]=RESET ;
  21:  !start timer ;
  22:  TIMER[1]=START ;
  23:  !move to image-capturing position ;
  24:L P[2] 1000mm/sec FINE    ;
  25:  !trigger Mech-Viz project ;
  26:  CALL MM_START_VIZ(2,10) ;
  27:  !get planned path, 1st argument ;
  28:  !(1) means getting pose in JPs ;
  29:  CALL MM_GET_VIZ(1,51,52,53) ;
  30:  !check whether planned path has ;
  31:  !been got from Mech-Viz ;
  32:  !successfully ;
  33:  IF R[53]<>2100,JMP LBL[99] ;
  34:  !save waypoints of the planned ;
  35:  !path to local variables one ;
  36:  !by one ;
  37:  CALL MM_GET_JPS(1,60,70,80) ;
  38:  CALL MM_GET_JPS(2,61,71,81) ;
  39:  CALL MM_GET_JPS(3,62,72,82) ;
  40:  !follow the planned path to pick ;
  41:  !move to approach waypoint ;
  42:  !of picking ;
  43:J PR[60] 50% FINE    ;
  44:  !move to picking waypoint ;
  45:J PR[61] 10% FINE    ;
  46:  !add object grasping logic here, ;
  47:  !such as "DO[1]=ON" ;
  48:  PAUSE ;
  49:  !move to departure waypoint ;
  50:  !of picking ;
  51:J PR[62] 50% FINE    ;
  52:  !move to intermediate waypoint ;
  53:  !of placing ;
  54:J P[3] 50% CNT100    ;
  55:  !move to approach waypoint ;
  56:  !of placing ;
  57:L P[4] 1000mm/sec FINE Tool_Offset,PR[2]    ;
  58:  !move to placing waypoint ;
  59:L P[4] 300mm/sec FINE    ;
  60:  !add object releasing logic here, ;
  61:  !such as "DO[1]=OFF" ;
  62:  PAUSE ;
  63:  !move to departure waypoint ;
  64:  !of placing ;
  65:L P[4] 1000mm/sec FINE Tool_Offset,PR[2]    ;
  66:  !move back to robot home position ;
  67:J P[1] 100% FINE    ;
  68:  !stop timer ;
  69:  TIMER[1]=STOP ;
  70:  !save timer value to register ;
  71:  R[99]=TIMER[1]    ;
  72:  JMP LBL[1] ;
  73:  END ;
  74:   ;
  75:  LBL[99:vision error] ;
  76:  !add error handling logic here ;
  77:  !according to different ;
  78:  !error codes ;
  79:  !e.g.: status=2038 means no ;
  80:  !point cloud in ROI ;
  81:  PAUSE ;

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

sample11

Le tableau ci-dessous décrit la fonctionnalité d’utilisation d’un minuteur pour calculer le temps requis.

Fonctionnalité Code et description

Calculer, par bouclage, le temps écoulé entre l’établissement de la communication et l’achèvement de chaque opération de prise et de dépose.

  18:  LBL[1:LOOP] ;
  ...
  72:  JMP LBL[1] ;

Le code ci-dessus indique que le programme exécute de manière répétée le code à LBL[1].

  19:  !reset timer to 0 ;
  20:  TIMER[1]=RESET ;

Le code ci-dessus réinitialise TIMER[1] à 0.

  21:  !start timer ;
  22:  TIMER[1]=START ;

Le code ci-dessus démarre TIMER[1].

  68:  !stop timer ;
  69:  TIMER[1]=STOP ;

Le code ci-dessus arrête TIMER[1].

  70:  !save timer value to register ;
  71:  R[99]=TIMER[1]    ;

Le code ci-dessus affecte la valeur de TIMER[1] au registre R[99], ce qui permet de récupérer facilement le temps suivi par le minuteur (c’est-à-dire le temps écoulé entre l’établissement de la communication et l’achèvement de l’opération de prise et de dépose).

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.