A propos des fonctions de déplacement
(Traduction du document original anglais)
Structure d’une fonction MOVE
La structure de base d'une fonction de déplacement est la suivante :
<fonction Move>(<type déplacement>, <position cible>, <vitesse vers cible>)
où :
Fonctionnement
La fonction MOVE lance le déplacement. Elle revient à l'application avant la fin du profil de déplacement. Le programme d'application utilise les bits d'état (%I) pour déterminer l'état du profil de déplacement. (Voir Objets langage Sercos).
Les fonctions ABS_MOVE qui spécifient une position cible en dehors des limites logicielles de l'axe de déplacement génèrent une MovementError du fait que l'axe de déplacement ne peut pas atteindre la cible. Les fonctions INCR_MOVE qui génèrent une cible en dehors des limites ne génèrent pas une MovementError puisque que le calcul de la position cible peut prendre du retard du fait du mécanisme de file d'attente des déplacements. De tels déplacements INCR_MOVE sont convertis en position cible pour atteindre la limite et génèrent un défaut AXIS_SUMMARY_FAULT lorsque la limite est atteinte. Les vitesses d'approche supérieures à la limite de vitesse maximale pour un axe de déplacement sont converties en vitesse d'approche à la limite de vitesse.
Etat de déplacement
Les bits IN_POSITION et AXIS_AT_TARGET sont mis à 0 au démarrage d'un déplacement. Le bit RAMPING est mis à 1 lorsque l'axe de déplacement reçoit une commande d'accélération ou de décélération. Le bit STEADY est mis à 1 lorsque l'axe de déplacement reçoit une commande Move à vitesse constante. STOPPING est mis à 1 au début de la décélération vers la position cible. IN_POSITION est mis à 1 lorsque la position réelle et la position cible sont comprises dans la plage après que STOPPING ait été mis à 1. PROFILE_END est mis à 1 lorsque le contrôleur commande à l'asservissement de rester à la position cible. AXIS_AT_TARGET est mis à 1 lorsque la position réelle et la position cible sont comprises dans la plage après que PROFILE_END ait été mis à 1. STOPPING sera mis à 0 lorsque l'axe aura atteint la fin du profil (PROFILE_END) et sera dans la plage (IN_POSITION).