Skip to main content

Persistance d'une position d'axe

Un axe doté d'un codeur absolu peut enregistrer une position afin de conserver sa position précédente après le redémarrage du contrôleur. Le repérage n'est pas obligatoire. SMC3_PersistPosition et SMC3_PersistPositionLogical les blocs fonctionnels fournissent les fonctionnalités nécessaires à l'opération de sauvegarde. Les données nécessaires sont enregistrées dans SMC3_PersistPosition_Data et SMC3_PersistPositionLogical_Data.

Le bPositionStored la sortie indique si le contenu de PersistentData ont changé. Cela se produit à des moments différents selon le type de persistance.

La plage de valeurs conservée par l'encodeur doit être configurée sur SMC_PersistPosition.maxPersistedValue entrée. Pour les codeurs multitours, la valeur est définie 16#FFFFFFFFFF. Pour un encodeur à tour unique 12 bits, par exemple, la valeur est définie sur 2^12 = 4096

Pour plus d'informations, consultez : Persistance des données

Astuce

L'instance est rendue persistante au moyen d'une déclaration as VAR_PERSISTENT ou le gestionnaire de persistance d'Application Composer.

Persistance de la position d'axe d'un codeur absolu multitours avec un axe physique

Condition requise : L'axe est équipé d'un codeur absolu multitour.

Utilisez le SMC3_PersistPosition FB pour rendre persistante la position de l'axe physique. Le programme respectif s'exécute dans la tâche de mouvement.

  1. Créez une instance de SMC3_PersistPosition bloc fonctionnel pour l'axe.

    pp: SM3_BASIC.SMC3_PersistPosition;

  2. Instancier une structure de données persistante du SMC3_PersistPosition_Data taper.

    pp_Data: SM3_BASIC.SMC3_PersistPosition_Data1;

  3. Prolongez le programme de la tâche de mouvement afin qu'un appel de la SMC3_PersistPosition instance y est implémentée.

    Appel implémenté dans CFC :

    _sm_img_call_of_SMC3_PersistPosition.png

    Le bloc fonction est appelé en cycles avec la tâche de mouvement. le SMC3_PersistPosition instance effectue la restauration de la position enregistrée lors de l'opération de démarrage. En fonctionnement normal, le FB enregistre la position réelle dans la structure de données correspondante.

Maintien de la position de l'axe d'un codeur absolu monotour avec axe physique

Condition préalable : L'axe physique dispose d'un codeur absolu monotour.

Utilisez le SMC3_Position persistante bloc fonctionnel pour rendre persistante la position de l'axe. Le programme correspondant s'exécute dans la tâche de mouvement. La position n'est affichée correctement que si l'axe n'a parcouru aucune distance ou seulement une courte distance (maximum de la moitié de la distance en un tour) entre la mise hors tension et la mise en marche du contrôleur. Par exemple, vous pouvez utiliser un frein mécanique pour ce faire. Si l'axe effectue un mouvement important lorsque le contrôleur est éteint, il reçoit une position incorrecte. Il n'est pas possible de vérifier via le FB.

  1. Créez une instance de SMC3_PersistPosition bloc fonctionnel pour l'axe.

    ppst_X: SM3_BASIC.SMC3_PersistPositionSinglturn;

  2. Instanciez une structure de données persistante du SMC3_PersistPosition_Data type.

    ppst_Data_X: SMC3_PersistPositionSingleturn_Data;

  3. Étendez le programme de la tâche de mouvement de sorte qu'un appel du SMC3_PersistPosition l'instance est implémentée et la structure de données persistante du SMC_PersistPosition_Data le type lui est transmis.

Conserver la position d'axe d'un axe logique

Condition : L'axe est logique.

Utilisez le SMC3_PersistPositionLogique bloc fonctionnel pour rendre persistante la position de l'axe logique. Cela ne fonctionne que si la position de l'axe physique supérieur est rendue persistante. La position d'un axe virtuel ne peut pas être rendue persistante au moyen de ces FB.

  1. Créez une instance de SMC3_PersistPositionLogical bloc fonctionnel pour l'axe.

    ppl: SM3_BASIC.SMC3_PersistPositionLogical;

  2. Instancier une structure de données persistante du SMC3_PersistPositionLogical_Data taper.

    ppl_Data: SMC3_PersistPositionLogical_Data;

  3. Prolongez le programme de la tâche de mouvement afin qu'un appel de la SMC3_PersistPositionLogical instance est implémentée et les données persistantes de type SMC3_PersistPositionLogical_Data lui est transmis.