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 :
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
Is Error
. 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.
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 PDOStop 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éciauxIs Error
etError ID
, 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
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 :
Sorties de base
- System State
Donne l’état actuel du système EYE+, voir Stop State(s) pour une liste complète des états.
- Clear Error Done
True lorsqu’EYE+ a fini de traiter la commande Clear Error Trigger. Réinitialisé à False lorsque le déclencheur Clear Error Trigger est remis à 0.
- 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 registreStart Production Done
ainsi que dans l’état du systèmeSystem State
. Les erreurs sont gérées à l’aide des registres spéciauxIs Error
etError ID
, 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
Part Quantity
,Multi Part Quantity A
,Multi Part Quantity B
,Multi Part Quantity C
,Multi Part Quantity D
ouModel N Quantity
(N = 1, 2, 3, 4, 5 ou 6). Par défaut, le paramètrePart 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).
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
ouMulti Part Quantity D
. Par défaut, le paramètrePart 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.
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.
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.
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éciauxIs Error
etError ID
, 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.
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
- Start Production Done
True lorsqu’EYE+ a fini de traiter la commande Start Production Trigger. Réinitialisé à False lorsque le déclencheur Start Production Trigger est défini comme égal à 0.
- 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.
- 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.
- Force Take Image Done
True lorsqu’EYE+ a fini de traiter la commande Force Take Image Trigger. Réinitialisé à False lorsque le déclencheur Force Take Image Trigger est défini comme égal à 0.
- 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.
- Save Parameters Done
True lorsqu’EYE+ a fini de traiter la commande Save Parameters Trigger. Réinitialisé à False lorsque le déclencheur Save Parameters Trigger est défini comme égal à 0.
- Can Take Image
Valeur de retour du paramètre Can Take Image.
- Image After Send
Valeur de retour du paramètre Image After Send.
- Command Timeout
Valeur de retour du paramètre Command Timeout.
- Part Quantity
Valeur de retour du paramètre Part Quantity.
- Multi Part Quantity A, B, C, D
Valeur de retour du paramètre Part A/B/C/D Quantity.
- 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 registreStart Purge Done
, ainsi que dans l’état du systèmeSystem State
. Les erreurs sont gérées en utilisant les registres spéciauxIs Error
etError ID
, 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
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.
- 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.
- 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
- Start Purge Done
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.
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 registreStart Hand-eye Calibration Done
et dans l’état du systèmeSystem State
. Les erreurs sont gérées à l’aide des registres spéciauxIs Error
etError ID
, 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
Calibration Point Index
. Au total, 4 points d’étalonnage (index 1 à 4) doivent être enregistrés avant d’exécuter la commandeCalibrate Trigger
. Les coordonnéesX Coordinate
etY Coordinate
du robot peuvent être exprimées dans l’unité de votre propre robot. Si un autre point a déjà été enregistré sous cetCalibration 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.
- 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.
- 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.
- 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
etTake Calibration Image Trigger
avant d’appeler la commandeCalibrate Trigger
. La précision de l’étalonnage est renvoyée sous 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 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
- Start Hand-eye Calibration Done
True lorsqu’EYE+ a terminé de traiter la commande Start Hand-eye Calibration Trigger. Réinitialisé à False lorsque le déclencheur Start Hand-eye Calibration Trigger est défini comme égal à 0.
- Set Calibration Point Done
True lorsqu’EYE+ a terminé de traiter la commande Set Calibration Point Trigger. Réinitialisé à False lorsque le déclencheur Set Calibration Point Trigger est remis à 0.
- Get Calibration Point Done
True lorsqu’EYE+ a terminé de traiter la commande Get Calibration Point Trigger. Réinitialisé à False lorsque le déclencheur Get Calibration Point Trigger est remis à 0.
- Take Calibration Image Done
True lorsqu’EYE+ a terminé de traiter la commande Take Calibration Image Trigger. Réinitialisé à False lorsque le déclencheur Take Calibration Image Trigger est remis à 0.
- 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.
- Test Calibration Done
True lorsqu’EYE+ a fini de traiter la commande Test Calibration Trigger. Réinitialisé à False lorsque le déclencheur Test Calibration Trigger est défini comme égal à 0.
- Save Calibration Done
True lorsqu’EYE+ a fini de traiter la commande Save Calibration Trigger. Réinitialisé à False lorsque le déclencheur Save Calibration 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 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