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+ 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
Purge 0b0010_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 0b0100_0000_0000
Migration des recettes 0b1000_0000_0000
Sauvegarde du système 0b0001_0000_0000_0000
Restauration du système 0b0010_0000_0000_0000
Initialisation 0b0100_0000_0000_0000
EYE+ 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+ 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, MultiPartQuantityA ou MultiPartQuantityB. Par défaut, le paramètre PartQuantity est défini comme étant 1. Veuillez vous référer à la section get_part pour une description complète de la commande.
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+. 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. Le nombre de pièces à préparer peut être modifié en changeant l’un des paramètres PartQuantity, MultiPartQuantityA ou MultiPartQuantityB. 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.
Remarque
Un scénario simple est décrit à la section Prepare part.
Force Take Image Trigger
Le registre ForceTakeImageTrigger oblige EYE+ à acquérir une image dès que possible.
Chaque fois que ForceTakeImageTrigger passe de 0 à 1, EYE+ 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 positions (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+ 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
Définir la valeur de ce paramètre à 0 désactive la fonction de délai : la commande sera exécutée jusqu’à ce que le nombre de pièces demandé soit trouvé.
Part Quantity
Ce paramètre est utilisé pour demander à EYE+ de rechercher plusieurs pièces en même temps. Chaque fois qu’EYE+ 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 et une nouvelle vibration et acquisition d’image seront effectuées jusqu’à ce que <n> pièces soient obtenues.
Multi Part Quantity A, B
Uniquement en lien avec une recette dualfeeding, définit le nombre de pièces d’un type 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 (vibration + 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 dualfeeding.
Contient la recette actuelle chargée pour la production ou la purge.
Get Part Done
True lorsqu’EYE+ 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+ 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+ a fini de traiter l’image et est prêt à donner la position en utilisant Get Part Trigger.
Is Analysis Running
True lorsqu’EYE+ est toujours en train de traiter des images, voir is_analysis_running.
En plus des fonctionnalités de production, l’interface EtherCAT donne accès à toutes les commandes permettant de contrôler entièrement le système de purge optionnel Asyril pour faciliter les changements de production. Voir Purge plate et Purge full pour obtenir plus d’informations sur la façon de tirer pleinement parti de cet accessoire optionnel.
Il existe quelques commandes spécifiques au système de purge :
Start Purge Trigger
Lance une recette pour purger la plateforme. L’identifiant unique de la recette doit être défini dans le registre RecipeID. Une fois que la purge a commencé, cela se reflétera dans le registre StartPurgeDone ainsi que dans l’état du système SystemState. Les erreurs sont gérées en utilisant les registres spéciaux IsError et ErrorID, voir Gestion des erreurs.
Voici un exemple où la recette 42 est lancée pour purger la plateforme :
Purge Plate Trigger
Effectue une séquence de purge de la plateforme uniquement. Cette séquence consiste à ouvrir le clapet de purge, à exécuter une vibration de la plateforme dans la direction correspondante et enfin à fermer le clapet de purge. La durée de la vibration peut être réglée dans le registre PurgeDuration.
Le registre PurgePlateDone est défini comme égal à 1 une fois qu’EYE+ a terminé la purge.
Le système doit être en mode de purge pour utiliser cette commande, voir Start Purge Trigger.
Purge Full Trigger
Effectue une séquence de purge de la plateforme et de la trémie. Cette séquence consiste à ouvrir le clapet de purge, à exécuter une vibration de la plateforme dans la direction correspondante ainsi qu’à déclencher la trémie et enfin à fermer le clapet de purge. La durée de la vibration doit être réglée dans le registre PurgeDuration.
Le registre PurgeFullDone est défini comme égal à 1 une fois qu’EYE+ a fini d’exécuter la purge.
Le système doit être en mode de purge pour utiliser cette commande, voir Start Purge Trigger.
Purge Duration
Durée de vibration de la plateforme et de la trémie en ms. Lorsque PurgeDuration est utilisé en combinaison avec la commande PurgePlateTrigger et si sa valeur est définie comme égale à 0, la valeur correspondante de la recette sera utilisée à la place. Elle doit être comprise entre 1 et 30000 ms.
True lorsqu’EYE+ a fini de traiter la commande Start Purge Trigger. Réinitialisé à False lorsque le déclencheur Start Purge Trigger est défini comme égal à 0.
Purge Plate Done
True lorsqu’EYE+ a fini de traiter la commande Purge Plate Trigger. Réinitialisé à False lorsque le déclencheur Purge Plate Trigger est défini comme égal à 0.
Purge Full Done
True lorsqu’EYE+ a fini de traiter la commande Purge Full Trigger. Réinitialisé à False lorsque le déclencheur Purge Full Trigger est défini comme égal à 0.
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 0 à 3) 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 0 à 3) 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+ 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+. Vous pouvez vérifier l’unité de mesure dans EYE+ 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.