Synchronisation avec un système de coordonnées en mouvement
La fonction de suivi intégrée permet de programmer des mouvements par rapport à un système de coordonnées en mouvement. Un cas d'utilisation typique consiste à prélever un produit sur un tapis roulant et à le placer sur un autre tapis roulant. Après avoir défini un système de coordonnées dynamiques pour chaque courroie, l'utilisateur peut simplement fournir des positions cibles pour les mouvements qui sont relatifs à ces systèmes de coordonnées. CODESYS SoftMotion se charge de superposer le mouvement commandé du groupe d'axes et le mouvement de la courroie.
Un mouvement de suivi typique se compose de trois phases :
Tracking in : passage d'un autre système de coordonnées au système de coordonnées dynamique. Une fois la position cible atteinte, le groupe d'axes suivra le mouvement du système de coordonnées dynamique.
Mouvement de suivi : déplacement vers une position différente à l'intérieur du même système de coordonnées dynamiques. Le mouvement commandé et le mouvement du repère dynamique seront superposés.
Tracking out : passage du système de coordonnées dynamique à un système de coordonnées différent. Une fois la position cible atteinte, le mouvement du groupe d'axes n'est plus influencé par le mouvement du système de coordonnées dynamique.
Définition d'un système de coordonnées dynamique
La première étape de la mise en œuvre d'une application de suivi dynamique consiste à définir un système de coordonnées dynamique. CODESYS SoftMotion fournit quatre blocs fonctionnels pour définir des systèmes de coordonnées dynamiques :
MC_TrackConveyorBelt
: Un bloc fonction facile à utiliser pour le cas d'utilisation courant du suivi d'une bande transporteuse. Une référence à la courroie réelle est fournie via leConveyorBelt
entrée, qui attend un axe SoftMotion de typeAXIS_REF_SM3
.MC_TrackRotaryTable
: Un bloc fonction facile à utiliser pour le cas d'utilisation courant du suivi d'une table rotative. Une référence à la table rotative réelle est fournie via leRotaryTable
entrée, qui attend un axe SoftMotion de typeAXIS_REF_SM3
.MC_SetDynCoordTransform
: Le bloc fonction fonctionne commeMC_TrackConveyorBelt
etMC_TrackRotaryTable
, mais, au lieu d'être contrôlé par un seul axe, est contrôlé par un groupe d'axes complet. Cela permet de mettre en œuvre un système de coordonnées dynamique avec jusqu'à six degrés de liberté.SMC_SetDynCoordTransformEx
: Le bloc fonction permet d'implémenter un système de coordonnées dynamiques entièrement personnalisé.
Chacun des quatre blocs fonctionnels possède un CoordSystem
entrée qui permet essentiellement de donner un nom au système de coordonnées, soit PCS_1
ou PCS_2
. Lors de la commande d'un mouvement, le système de coordonnées est référencé par ce nom.
Commander un mouvement vers une position dans un système de coordonnées dynamique
Après avoir défini un repère dynamique, commander un déplacement vers une position dans ce repère est facile. Chaque bloc fonctionnel de mouvement, par exemple MC_MoveLinearAbsolute
, a un CoordSystem
saisir. Cette entrée doit être réglée sur le nom (PCS_1
ou PCS_2
) donné au système de coordonnées dynamique. La Position
l'entrée peut alors être réglée sur la position souhaitée par rapport à l'origine du système de coordonnées dynamiques. L'exécution du bloc fonctionnel de déplacement entraînera un déplacement vers la position à l'intérieur du système de coordonnées de déplacement. Une fois la position cible atteinte, le groupe d'axes suivra le repère dynamique tout en restant à cette position relative.
La sortie "InUse" des blocs fonctionnels du système de coordonnées dynamique
Chaque bloc fonctionnel de système de coordonnées dynamique (MC_TrackConveyorBelt
, MC_TrackRotaryTable
, MC_SetDynCoordTransform
, et SMC_SetDynCoordTransformEx
) a un InUse
production. Le redémarrage d'un bloc fonction alors que le système de coordonnées est encore utilisé n'est pas autorisé et entraînera l'erreur SMC_AXIS_GROUP_PCS_STILL_IN_USE
. Un système de coordonnées dynamique sera utilisé dès qu'un mouvement vers une position dans le système de coordonnées sera commandé. Il restera utilisé jusqu'à ce qu'une position cible dans un système de coordonnées différent soit atteinte.
Limites d'axe pour le suivi des mouvements
Les limites d'axe doivent tenir compte à la fois du mouvement du système de coordonnées et du mouvement commandé par rapport au système de coordonnées. Si une dynamique d'axe élevée est nécessaire pour suivre le système de coordonnées, le mouvement par rapport au système de coordonnées peut être lent ou impossible du tout. Si le groupe d'axes est proche d'une singularité de la cinématique, cela peut même se produire avec un système de coordonnées à déplacement relativement lent.
Pour plus d'informations, consultez : Onglet : Général
Dynamique de trajectoire des mouvements CP pendant le suivi
Une attention particulière doit être accordée à la dynamique des trajectoires des mouvements de CP. Cela inclut le Velocity
, Acceleration
, Deceleration
, et Jerk
entrées de MC_MoveLinearAbsolute
, MC_MoveLinearRelative
, MC_MoveCircularAbsolute
, et MC_MoveCircularRelative
. Si les positions de départ et cible sont dans le même système de coordonnées dynamiques, la dynamique du chemin sera relative à ce système de coordonnées. Cependant, si les positions de début et de fin se trouvent dans des systèmes de coordonnées différents, la dynamique du trajet est fusionnée de la dynamique relative au premier système de coordonnées à la dynamique relative au second système de coordonnées. Il est important que la dynamique du trajet soit supérieure à la valeur absolue de la différence de dynamique entre les deux systèmes de coordonnées. En particulier, lors du passage d'un système de coordonnées statique à un système de coordonnées dynamique, la dynamique du chemin doit être définie à un niveau supérieur à la valeur absolue de la dynamique du système de coordonnées.
Important
La vitesse de trajectoire ne peut pas être surveillée avec SMC_GroupReadPathDynamics
lors du déplacement entre les systèmes de coordonnées (suivi entrant, sortant ou entre différents systèmes de coordonnées dynamiques).
SMC_GroupReadPathDynamics
calcule la dynamique du chemin par rapport à un système de coordonnées spécifié. Dans le cas d'un suivi d'entrée ou de sortie ou d'un déplacement entre des systèmes de coordonnées dynamiques, il s'agit d'un mouvement qui dépend de deux systèmes de coordonnées (les systèmes de coordonnées de départ et de destination diffèrent). En conséquence, le SMC_GroupReadPathDynamics
bloc fonctionnel ne convient pas pour calculer la dynamique du chemin dans ces cas.
Évitez les erreurs SMC_AXIS_GROUP_MAX_AXIS_LAG_EXCEEDED, SMC_AXIS_GROUP_MAX_POSITION_LAG_EXCEEDED ou SMC_AXIS_GROUP_MAX_ORIENTATION_LAG_EXCEEDED.
Les erreurs SMC_AXIS_GROUP_MAX_AXIS_LAG_EXCEEDED
, SMC_AXIS_GROUP_MAX_POSITION_LAG_EXCEEDED
, ou SMC_AXIS_GROUP_MAX_ORIENTATION_LAG_EXCEEDED
sont signalés s'il n'est pas possible de suivre la trajectoire commandée sans violer les limites d'axe configurées ou la dynamique de la trajectoire. Si cette erreur se produit, il convient d'abord de vérifier si les limites de l'axe et la dynamique de trajectoire sont configurées conformément aux deux sections précédentes. L'écart de trajectoire peut être surveillé avec les sorties PositionLag
et OrientationLag
de la MC_GroupReadStatus
bloc fonctionnel.
Les solutions possibles sont les suivantes :
Augmentez les limites de l'axe.
Augmentez la dynamique de trajectoire des mouvements CP lors du suivi dans un système de coordonnées dynamique.
Réduire la dynamique du système de coordonnées.
Eviter les mouvements proches d'une singularité de la cinématique, par exemple en repositionnant le robot.
Si le système de coordonnées dynamiques est contrôlé par la sortie d'un encodeur bruyant, il peut être utile de filtrer le signal de l'encodeur à l'aide d'un axe logique. Pour plus d'informations, voir Axes logiques Languette.
Une tolérance acceptable pour la position et le décalage d'orientation peut être configurée à l'aide du SMC_GroupSetPathTolerance
bloc fonctionnel.