Skip to main content

Interruption des mouvements

Interruption des mouvements à axe unique

Les mouvements à axe unique, tels que MC_MoveAbsolute, peut être interrompu à tout moment par d'autres mouvements. Il peut s'agir d'un mouvement vers une position différente ou d'un changement de vitesse maximale, d'accélération ou de secousse avec le même type de mouvement et vers la même position. L'interruption est mise en œuvre de telle sorte qu'il n'y ait pas de saut de vitesse. Pour tous les types de rampes quadratiques, il n'y a pas non plus de saut d'accélération

Dans certains cas, une inversion de l'axe est inévitable en raison du mouvement interrompu :

  • Si la nouvelle position cible d'un MC_MoveAbsolute existe avant la fin de la distance de décélération actuelle

  • Si une décélération maximale plus faible et/ou une secousse maximale plus faible sont utilisées pour le mouvement interrompu, qui à son tour étend la distance de décélération au-delà de la position cible

  • Si SMC_MoveContinuousAbsolute ou SMC_MoveContinuousRelative est utilisé avec un EndVelocity qui ne peut pas être atteint à partir de l'état actuel de l'axe sans inversion

Quand la rampe est typée sin² et quadratique (lisse) sont utilisées, une inversion peut se produire lors de l'interruption même si cela ne semble pas nécessaire. (C'est-à-dire, même si les raisons énumérées ci-dessus ne s'appliquent pas. Voir les explications ci-dessous.) La nouvelle position cible pourrait alors être dépassée, bien qu'elle ne soit pas située avant l'ancienne position cible. Cela peut se produire même si la décélération maximale et la secousse maximale ne sont pas modifiées (voire augmentées) et si la vitesse finale n'est pas modifiée par rapport au mouvement interrompu. Dans ce cas, les règles suivantes s'appliquent :

  • Pour les types de rampes trapézoïdales et quadratiques, il n'y a jamais de dépassement.

  • Pour sin² type de rampe, il n'y a pas de dépassement lorsque la nouvelle position cible et les valeurs limites d'accélération et de décélération sont égales aux anciennes valeurs.

  • Dans tous les autres cas, il se peut qu'il y ait un dépassement sin² et quadratique (lisse) types de rampes.

Explication de la sin² type de rampe : Le mouvement interrompu commence par une nouvelle rampe de vitesse sin², ce qui signifie que l'accélération commence à 0 et augmente ou diminue progressivement. Si l'accélération de l'axe n'est pas égale à 0 au moment de l'abandon, l'accélération passe à 0 au début de la rampe de vitesse sin². Cela peut entraîner un dépassement car l'augmentation ou la diminution de l'accélération prend du temps.

Explication de la quadratique (lissé) type de rampe : la même explication s'applique que pour sin², mais pour la secousse plutôt que pour l'accélération.

Remarque à propos de la dérogation

Sur la base des explications ci-dessus, en utilisant MC_SetOverride avec le sin² et quadratique (lissé) le type de rampe n'est pas recommandé

Interruption pendant la phase de décélération

Mouvements à axe unique, tels que MC_MoveAbsolute, peut être interrompu à tout moment par d'autres mouvements. Il peut s'agir d'un mouvement vers une autre position ou d'un changement de vitesse ou d'accélération. Fondamentalement, l'interruption du mouvement est mise en œuvre par un autre de manière à ce qu'il n'y ait pas de saut de vitesse. Pour tous les types de rampes (sauf trapèze), il n'y a pas non plus de saut dans l'accélération. Lorsque les types de rampe sin² et quadratique (lisse) sont utilisés, une inversion peut se produire lors d'une interruption et n'apparaît pas nécessaire dans un premier temps (voir explication). Ensuite, la nouvelle position cible est dépassée, bien qu'elle ne soit pas située avant l'ancienne position cible. Cela peut se produire dans les situations suivantes :

  • Si une valeur de décélération maximale plus petite est définie pour le mouvement d'annulation qu'auparavant

    Dans ce cas, la distance de décélération disponible jusqu'à la nouvelle position cible est peut-être trop courte (pour tous les types de rampe).

  • En conséquence, pour quadratique et quadratique (lisse) types de rampe lorsqu'une valeur maximale inférieure est définie pour le jerk

Cependant, si ces valeurs maximales restent inchangées (ou augmentent), les règles suivantes s'appliquent :

  • Pour trapèze et quadratique rampes, il n'y a jamais de surcourse.

  • Pour le sin² de type rampe, il n'y a pas de surcourse lorsque la nouvelle position cible et les valeurs limites d'accélération et de décélération sont égales aux anciennes valeurs.

  • Dans tous les autres cas, il peut y avoir surcourse avec sin² et quadratique (lisse) types de rampes.