Toutes les commandes du module EtherCAT suivent le même principe. Elles peuvent être identifiées par leur nom qui se termine par Trigger. Pour envoyer une commande, veuillez utiliser la démarche suivante :
Définissez les paramètres nécessaires avant de régler le Trigger sur True.
Définissez le Trigger de la commande comme étant True.
Attendez que l’indicateur <commande>Done devienne True.
Réinitialisez le Trigger de la commande sur False.
Attendez que l’indicateur <commande>Done soit remis à False.
Vérifiez les éventuelles erreurs dans le registre IsError. S’il y en a une, traitez-la en fonction de vos besoins.
S’il n’y a pas d’erreur, vous pouvez utiliser la ou les sorties correspondantes.
Ceci est illustré dans la figure suivante :
Remarque
Il ne peut y avoir deux déclencheurs de commande réglés sur True en même temps. Dans ce cas, EYE+ XTD renvoie une erreur. Voir Codes d’erreur supplémentaires.
Arrête tous les états tels que définis dans stop <état>. Les états sont codés sous la forme d’un bitset, où chaque état a la valeur suivante :
Production 0b0000_0001
Édition de la recette 0b0000_0010
Configuration de la caméra 0b0000_0100
Étalonnage main-œil 0b0000_1000
Qualification de recette 0b0001_0000
En outre, les états suivants sont également disponibles dans le registre SystemState :
Erreur 0b0100_0000
Prêt 0b1000_0000
Mise à jour du système 0b0001_0000_0000
Migration des paramètres 0b010_0000_0000
Migration des recettes 0b100_0000_0000
Sauvegarde du système 0b000_1000_0000_0000
Restauration du système 0b0001_0000_0000_0000
Initialisation 0b0010_0000_0000_0000
Erreur de migration 0b0100_0000_0000_0000
Migration à distance 0b1000_0000_0000_0000
EYE+ XTD reconnaît cette commande lorsque la valeur StopStates change (par exemple, lorsque la valeur passe de 0 à 1). L’entrée PDO StopStateDone passe à True lorsque le système a fini de traiter la commande, comme le montre la figure suivante. Les erreurs sont gérées à l’aide des registres spéciaux IsError et ErrorID, voir Gestion des erreurs.
Le Done BOOL est effacé lorsque la valeur revient à 0.
Remarque
Arrêter tous les états pour retourner à l’état Prêt peut être réalisé en mettant cette valeur à 0xFF.
Clear Error Trigger
EYE+ XTD peut renvoyer tout code d’erreur défini dans les Codes d’erreur. Le déclencheur Clear Error Trigger permet d’effacer toute erreur qui apparaîtrait dans le registre ErrorID. En plus des codes d’erreurs standards, des erreurs spécifiques à EtherCAT peuvent être affichées. Celles-ci sont expliquées au chapitre Codes d’erreur supplémentaires.
La suppression d’une erreur active est simple, comme indiqué ci-dessous :
Lance une recette en production. L’identifiant unique de la recette doit être défini dans le registre RecipeID. Une fois que la production a démarré, cela se reflètera dans le registre StartProductionDone ainsi que dans l’état du système SystemState. Les erreurs sont gérées à l’aide des registres spéciaux IsError et ErrorID, voir Gestion des erreurs.
Voici un exemple où la recette 42 est lancée en production :
Get Part Trigger
Demande une ou plusieurs pièces. Le nombre de pièces renvoyées peut être changé en modifiant la valeur de l’un des paramètres PartQuantity ou ModelNQuantity (N = 1, 2, 3, 4, 5 ou 6). Par défaut, le paramètre PartQuantity est défini comme étant 1. Veuillez vous référer à la section get_part(multi-model) pour une description complète des commandes.
La figure ci-dessous montre un exemple de demande d’une seule pièce (paramètre par défaut).
Prépare une ou plusieurs pièces à partir d’EYE+ XTD. Les pièces préparées peuvent être prélevées ultérieurement en utilisant le registre Get Part Trigger. Cette commande a le même comportement que Get Part Trigger sauf qu’elle n’envoie pas les coordonnées des pièces et qu’elle ne prend pas en compte le paramètre Timeout, voir Command Timeout. Par défaut, le paramètre PartQuantity est égal à 1. Veuillez consulter la section prepare_part pour une description complète de la commande.
Lorsque la ou les pièces demandées sont prêtes, l’indicateur IsPrepared est défini comme égal à 1.
La figure ci-dessous montre un exemple de préparation d’une pièce.
Force Take Image Trigger
Le registre ForceTakeImageTrigger oblige EYE+ XTD à acquérir une image dès que possible.
Chaque fois que ForceTakeImageTrigger passe de 0 à 1, EYE+ XTD va acquérir un nouvel ensemble d’images et effectuer l’analyse. Veuillez vous référer à la section force_take_image pour une description complète de la commande.
La figure ci-dessous montre un exemple de mise en place de cet indicateur.
Le registre ClearPoses permet d’effacer les sorties de Poses (Pose<n>), résultant en une liste vide de positions. Ceci est utile entre deux Get Part Triggers consécutifs.
Certains paramètres peuvent être ajustés en cours de production en fonction de vos besoins. La liste suivante indique les paramètres disponibles.
Save Parameters Trigger
Les paramètres énumérés dans Paramètres de production doivent être enregistrés explicitement à l’aide de cette commande spécifique. EYE+ XTD signale l’exécution de la commande à l’aide du registre SaveParametersDone. La commande enregistre tous les paramètres énumérés sous Paramètres de production, il est donc important de tous les initialiser à une valeur judicieuse ! Les erreurs sont gérées en utilisant les registres spéciaux IsError et ErrorID, voir Gestion des erreurs.
L’exemple ci-dessous montre le comportement d’un des paramètres lors de l’envoi de la commande.
Important
Cette commande enregistre tous les paramètres, il est important que vous les initialisiez tous à une valeur judicieuse.
Can Take Image
L’acquisition d’images est activée par défaut. Si nécessaire, ce paramètre peut être défini comme False pour désactiver l’acquisition d’images. Voir Can take image pour plus d’informations sur les cas dans lesquels cette commande est utile.
Image After Send
Force l’acquisition d’une image après la prise d’une pièce. Chaque fois que vous appelez les commandes Get Part Trigger ou Prepare Part Trigger, le système acquerra automatiquement d’abord une image. Ceci sert à corriger les coordonnées des bons candidats déjà trouvés (stockés dans la mémoire) si vous pensez que les pièces auraient pu bouger entre-temps en raison d’une perturbation extérieure.
Il s’agit du délai d’attente (en secondes) appliqué lors de l’appel de la commande Get Part Trigger. Si aucune pièce n’a été trouvée dans ce délai, une erreur est renvoyée.
Remarque
Par défaut, le paramètre timeout est fixé à 0.0. Référez-vous à timeout pour plus de détails sur la façon dont cette valeur affecte le comportement du système.
Part Quantity
Ce paramètre est utilisé pour demander à EYE+ XTD de rechercher plusieurs pièces en même temps. Chaque fois qu’EYE+ XTD acquerra une image, le système cherchera au moins <n> pièces sur l’image. Si ce nombre de pièces n’est pas trouvé, aucune coordonnée ne sera envoyée.
Model N Quantity, où N = 1, 2, 3, 4, 5 ou 6
Uniquement en lien avec une recette multi-model, définit le nombre de pièces d’un modèle défini demandées par Prepare Part Trigger et Get Part Trigger à chaque fois qu’une image est acquise. Si ce nombre de pièces n’est pas trouvé lors de l’acquisition de l’image, alors Get Part Trigger ou Prepare Part Trigger recommencera (acquisition d’image) jusqu’à ce que ce nombre de pièces soit trouvé.
Pour plus d’informations sur le fonctionnement des quantités de pièces, veuillez lire la section décrivant un scénario commun pour une production en mode multi-model.
Contient la recette actuellement chargée pour la production.
Get Part Done
True lorsqu’EYE+ XTD a fini de traiter la commande Get Part Trigger. Réinitialisé à False lorsque le déclencheur Get Part Trigger est défini comme égal à 0.
Prepare Part Done
True lorsqu’EYE+ XTD a fini de traiter la commande Prepare Part Trigger. Réinitialisé à False lorsque le déclencheur Prepare Part Trigger est défini comme égal à 0.
Is Prepared
True lorsqu’EYE+ XTD a fini de traiter l’image et est prêt à donner la position en utilisant Get Part Trigger.
Is Analysis Running
True lorsqu’EYE+ XTD est toujours en train de traiter des images, voir is_analysis_running.
Nombre de pièces générales prêtes à être renvoyées à l’aide de Get Part Trigger.
Model N Prepared, où N = 1, 2, 3, 4, 5 ou 6
Nombre de pièces spécifiques du modèle sélectionné prêtes à être renvoyées à l’aide de Get Part Trigger.
Poses
EYE+ XTD peut générer jusqu’à 10 positions à la fois. Chaque position est composée de 3 paramètres toujours présents définissant la position de la pièce et de 2 paramètres optionnels dans le cas où vous produisez une Recette multi-model :
Lance un étalonnage main-œil en utilisant une de vos recettes et sa pièce associée. L’identifiant unique de la recette doit être défini dans le registre RecipeID. Une fois que le processus d’étalonnage main-œil a démarré, ceci se reflétera dans le registre StartHand-eyeCalibrationDone ainsi que dans l’état du système SystemState. Les erreurs sont gérées à l’aide des registres spéciaux IsError et ErrorID, voir Gestion des erreurs.
Voici un exemple où la recette 42 est utilisée pour lancer un étalonnage main-œil :
Set Calibration Point Trigger
Enregistre une nouvelle position robot pour l’étalonnage main-œil actuel à la position CalibrationPointIndex. Au total, 4 points d’étalonnage (index 1 à 4) doivent être enregistrés avant d’exécuter la commande CalibrateTrigger. Les coordonnées XCoordinate et YCoordinate du robot peuvent être exprimées dans l’unité de votre propre robot. Si un autre point a déjà été enregistré sous cet CalibrationPointIndex, il sera écrasé par le point nouvellement défini.
Renvoie les coordonnées du robot qui ont été enregistrées sous CalibrationPointIndex. Les coordonnées renvoyées peuvent être lues dans Pose 1 - X et Pose 1 - Y.
Prend une image pour obtenir les coordonnées de vision actuelles de l’objet détecté. Les coordonnées détectées sont appariées avec la position robot enregistrée sous CalibrationPointIndex. Si plusieurs pièces sont détectées, la première sera utilisée comme point de comparaison.
Index du point d’étalonnage. Un point d’étalonnage complet se compose d’une position robot et d’une position correspondante de la pièce. Au total, 4 points d’étalonnage (index 1 à 4) doivent être enregistrés avant d’exécuter la commande d’étalonnage main-œil CalibrateTrigger.
X Coordinate
Coordonnée X de la position robot à enregistrer à l’aide de la commande SetCalibrationPointTrigger.
Y Coordinate
Coordonnée Y de la position robot à enregistrer à l’aide de la commande SetCalibrationPointTrigger.
Calibrate Trigger
Calcule la matrice d’étalonnage main-œil à partir des points d’étalonnage enregistrés. Vous devez avoir enregistré 4 points de calibrage complets avec les commandes SetCalibrationPointTrigger et TakeCalibrationImageTrigger avant d’appeler la commande CalibrateTrigger. La précision de l’étalonnage est renvoyée dans Calibration Accuracy.
Test Calibration Trigger
Cette commande est utilisée pour tester l’étalonnage main-œil actuellement calculé. Elle renvoie le nombre de pièces détectées dans NumberofValidEntries et leur coordonnées robot dans Poses. Vous pouvez vérifier si les coordonnées robot détectées correspondent aux coordonnées réelles du robot.
Save Calibration Trigger
Sauvegarde l’étalonnage main-œil actuel. Cette commande doit être appelée après CalibrateTrigger pour sauvegarder les données dans le système si vous considérez que le résultat est assez bon. Une fois l’étalonnage sauvegardé, il sera automatiquement utilisé en production. Si une autre calibration a été sauvegardée auparavant, elle sera écrasée par la nouvelle calibration.
Remarque
Si vous oubliez d’exécuter cette commande et que vous arrêtez l’état d’étalonnage main-œil, vous perdrez toutes les données de calibration en suspens.
True lorsqu’EYE+ XTD a terminé de traiter la commande Calibrate Trigger. Réinitialisé à False lorsque le déclencheur Calibrate Trigger est défini comme égal à 0.
Précision de l’étalonnage résultant de la commande Calibrate Trigger. Elle est exprimée dans l’unité de mesure qui est configurée dans votre système EYE+ XTD. Vous pouvez vérifier l’unité de mesure dans EYE+ XTD Studio dans le menu CONFIGURATION sous Robot.
Remarque
Si vous n’avez pas effectué la configuration de la caméra avant l’étalonnage main-œil, la précision de l’étalonnage sera exprimée en pixels.