Principes des commandes

Toutes les commandes du module PROFINET IO 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 :

  1. Définissez les paramètres nécessaires avant de régler le Trigger sur True.

  2. Définissez le Trigger de la commande comme étant True.

  3. Attendez que l’indicateur <commande> Done devienne True.

  4. Réinitialisez le Trigger de la commande sur False.

  5. Attendez que l’indicateur <commande> Done soit remis à False.

  6. Vérifiez les éventuelles erreurs dans le registre Is Error. S’il y en a une, traitez-la en fonction de vos besoins.

  7. S’il n’y a pas d’erreur, vous pouvez utiliser la ou les sorties correspondantes.

Ceci est illustré dans la figure suivante :

../../../_images/ecs_start_production.svg

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.

Fonctionnalités de base

Entrées de base

  • Stop States [UDINT]

    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 System State :

    • 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

    • Erreur de migration 0b1000_0000_0000_0000

    EYE+ reconnaît cette commande lorsque la valeur de Stop States change (par exemple, lorsque la valeur passe de 0 à 1). L’entrée PDO Stop State Done 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 Is Error et Error ID, voir Gestion des erreurs.

    ../../../_images/ecs_stop_states.svg

    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 Error ID. En plus des codes d’erreurs standards, des erreurs spécifiques à PROFINET IO 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 :

    ../../../_images/ecs_clear_error.svg

Sorties de base

  • System State

    Donne l’état actuel du système EYE+, voir Stop State(s) pour une liste complète des états.

  • Is Error

    True lorsque la sortie Error ID contient une erreur, False dans le cas contraire. Effacer l’erreur a pour effet de réinitialiser ce registre à False.

  • Error ID

    Contient l’Error ID actuel, voir Clear Error Trigger. La suppression de l’erreur a pour effet de réinitialiser ce registre à la valeur 0.

  • Stop State Done

    True lorsqu’EYE+ a fini de traiter la commande Stop State(s). Réinitialisé à la valeur False lorsque le déclencheur Stop State(s) est remis à 0.

Fonctionnalités de production

Entrées de production

  • Start Production Trigger

    Lance une recette en production. L’identifiant unique de la recette doit être défini dans le registre Recipe ID. Une fois la production lancée, cela se reflètera dans le registre Start Production Done ainsi que dans l’état du système System State. Les erreurs sont gérées à l’aide des registres spéciaux Is Error et Error ID, voir Gestion des erreurs.

    Voici un exemple où la recette 42 est lancée en production :

    ../../../_images/ecs_start_production.svg
  • 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 Part Quantity, Multi Part Quantity A, Multi Part Quantity B, Multi Part Quantity C, Multi Part Quantity D ou Model N Quantity (N = 1, 2, 3, 4, 5 ou 6). Par défaut, le paramètre Part Quantity est défini comme étant 1. Veuillez vous référer aux sections get_part et get_part 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).

    ../../../_images/ecs_get_part.svg

    Remarque

    Un scénario simple est décrit dans Get part.

  • Prepare Part Trigger

    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 Part Quantity, Multi Part Quantity A, Multi Part Quantity B, Multi Part Quantity C ou Multi Part Quantity D. Par défaut, le paramètre Part Quantity 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 Is Prepared est défini comme égal à 1.

    La figure ci-dessous montre un exemple de préparation d’une pièce.

    ../../../_images/ecs_prepare_part.svg

    Remarque

    Un scénario simple est décrit à la section Prepare part.

  • Force Take Image Trigger

    Le registre Force Take Image Trigger oblige EYE+ à acquérir une image dès que possible.

    Utilisé surtout en conjonction avec Prepare Part Trigger et Get Part Trigger.

    Chaque fois que Force Take Image Trigger 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.

    ../../../_images/ecs_force_take_image.svg

    Remarque

    Un scénario simple est décrit sous Force take image.

  • Clear Poses

    Le registre Clear Poses 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.

    ../../../_images/ecs_clear_part.svg

Paramètres de production

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 Save Parameters Done. 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 Is Error et Error ID, voir Gestion des erreurs.

    L’exemple ci-dessous montre le comportement d’un des paramètres lors de l’envoi de la commande.

    ../../../_images/ecs_save_param.svg

    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.

    Voir Image after send pour plus d’informations.

  • Command Timeout

    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, C, D

    Uniquement en lien avec une recette multi-feeding, 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 suivante décrivant un scénario commun pour une production en mode multi-feeding.

  • 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 (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 multi-model.

Sorties de production

  • Active Recipe

    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.

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

  • Parts Prepared

    Nombre de pièces générales prêtes à être prélevées à l’aide de Get Part Trigger.

  • Multi Parts Prepared A, B, C, D

    Nombre de pièces spécifiques prêtes à être prélevé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 d’un modèle sélectionné prêtes à être renvoyées à l’aide de Get Part Trigger.

  • Poses

    EYE+ peut produire jusqu’à 10 positions à la fois. Chaque position est composée de 3 paramètres obligatoires définissant la position de la pièce et de 2 paramètres optionnels dans le cas où vous produisez une recette Multi-feeding ou Multi-model :

    • Pose <n> X : la coordonnée X pour cette pièce

    • Pose <n> Y : la coordonnée Y pour cette pièce

    • Pose <n> RZ : l’angle RZ pour cette pièce

    • Pose <n> Type : le type de pièce (utilisé dans les recettes Multi-feeding)

    • Pose <n> Model : le modèle de pièce (utilisé dans les recettes Multi-model)

    En outre, le nombre d’entrées valides est toujours défini dans le registre Number of Valid Entries.

    Remarque

    Pose <n> Model est situé dans un groupe séparé dans le GSDML. Voir Sorties.

  • Model N Quantity Read-back, où N = 1, 2, 3, 4, 5 ou 6

    Valeur de retour du paramètre Model Quantity.

Fonctionnalités de purge

Entrées de purge

En plus des fonctionnalités de production, l’interface PROFINET IO 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

    Démarre une recette pour purger la plateforme. L’identifiant unique de la recette doit être défini dans le registre Recipe ID. Une fois que la purge a commencé, cela se reflète dans le registre Start Purge Done, ainsi que dans l’état du système System State. Les erreurs sont gérées en utilisant les registres spéciaux Is Error et Error ID, voir Gestion des erreurs.

    Voici un exemple où la recette 42 est lancée pour purger la plateforme :

    ../../../_images/ecs_start_purge.svg
  • 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 Purge Duration.

    Le registre Purge Plate Done 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.

    ../../../_images/ecs_purge_plate.svg
  • 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 Purge Duration.

    Le registre Purge Full Done 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.

    ../../../_images/ecs_purge_full.svg
  • Purge Duration

    Durée des vibrations de la plateforme et de la trémie en ms. Elle doit être comprise entre 0 et 30000 ms. Si la durée est fixée à 0, la purge avancée est déclenchée.

    Si la purge avancée est déclenchée, la durée de la purge dépendra du nombre de pièces présentes sur la plateforme et de l’intensité de la vibration de purge définie. La purge ne s’arrêtera que lorsque toutes les pièces auront été évacuées. Si la plateforme n’est pas purgée après 30 secondes, une erreur spécifique sera déclenchée.

Sorties de purge

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

Fonctionnalités d’étalonnage main-œil

Le flux de commandes pour effectuer un étalonnage main-œil en utilisant 4 points d’étalonnage est décrit dans ce scénario.

Entrées d’étalonnage main-œil

  • Start Hand-eye Calibration Trigger

    Démarre 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 Recipe ID. Une fois que le processus d’étalonnage main-œil a démarré, ceci se reflétera dans le registre Start Hand-eye Calibration Done et dans l’état du système System State. Les erreurs sont gérées à l’aide des registres spéciaux Is Error et Error ID, voir Gestion des erreurs.

    Voici un exemple où la recette 42 est utilisée pour lancer un étalonnage main-œil :

    ../../../_images/handeye_start.svg
  • Set Calibration Point Trigger

    Enregistre une nouvelle position robot pour l’étalonnage main-œil actuel à la position Calibration Point Index. Au total, 4 points d’étalonnage (index 1 à 4) doivent être enregistrés avant d’exécuter la commande Calibrate Trigger. Les coordonnées X Coordinate et Y Coordinate du robot peuvent être exprimées dans l’unité de votre propre robot. Si un autre point a déjà été enregistré sous cet Calibration Point Index, il sera écrasé par le point nouvellement défini.

    Le système doit être en mode d’étalonnage main-œil pour utiliser cette commande, voir Start Hand-eye Calibration Trigger.

    ../../../_images/handeye_set_robot_point.svg
  • Get Calibration Point Trigger

    Renvoie les coordonnées robot qui ont été enregistrées sous Calibration Point Index. Les coordonnées renvoyées peuvent être lues dans Pose 1 - X et Pose 1 - Y.

    Le système doit être en mode d’étalonnage main-œil pour utiliser cette commande, voir Start Hand-eye Calibration Trigger.

    ../../../_images/handeye_get_robot_point.svg
  • Take Calibration Image Trigger

    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 Calibration Point Index. Si plusieurs pièces sont détectées, la première sera utilisée comme point de comparaison.

    Le système doit être en mode d’étalonnage main-œil pour utiliser cette commande, voir Start Hand-eye Calibration Trigger.

    ../../../_images/handeye_take_image.svg
  • Calibration Point Index

    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 Calibrate Trigger.

  • X Coordinate

    Coordonnée X de la position robot à enregistrer à l’aide de la commande Set Calibration Point Trigger.

  • Y Coordinate

    Coordonnée Y de la position robot à enregistrer à l’aide de la commande Set Calibration Point Trigger.

  • 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 Set Calibration Point Trigger et Take Calibration Image Trigger avant d’appeler la commande Calibrate Trigger. La précision de l’étalonnage est renvoyée sous Calibration Accuracy.

    ../../../_images/handeye_calibrate.svg
  • 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 sous Number of Valid Entries et leurs coordonnées robot dans les Poses. Vous pouvez ensuite 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 Calibrate Trigger 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.

Sorties d’étalonnage main-œil

  • Calibrate Done

    True lorsqu’EYE+ a fini de traiter la commande Calibrate Trigger. Réinitialisé à False lorsque le déclencheur Calibrate Trigger est défini comme égal à 0.

  • Calibration Accuracy

    Précision de l’étalonnage résultant de la commande Calibrate Trigger. Elle est exprimée dans l’unité de mesure 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.

Codes d’erreur supplémentaires

EYE+ renverra un code d’erreur spécifique à PROFINET IO si nécessaire. Une liste de ces codes d’erreur et leur description est présentée ci-dessous :

701

Des commandes concomitantes sont actives dans l’assemblage