1. La prise d’origine

La prise d’origine semble assez simple, il suffit de déplacer chaque axe à un emplacement connu et de positionner l’ensemble des variables internes de LinuxCNC en conséquence. Toutefois, les machines étant différentes les unes des autres, la prise d’origine est maintenant devenue assez complexe.

2. Séquences de prise d’origine

Il existe quatre séquences de prise d’origine possibles. Elles sont définies par le signe des variables SEARCH_VEL et LATCH_VEL ainsi que les paramètres de configuration associés, la figure suivante donne le détail de ces séquences.

images/linuxcnc-motion-homing-diag_fr.png
Figure 1. Les séquences de POM possibles
  1. Comme on le voit sur la figure, les deux conditions de base sont les suivantes:

    1. La direction de recherche (SEARCH_VEL) et la direction de détection (LATCH_VEL) sont de même signe.

    2. La direction de recherche (SEARCH_VEL) et la direction de détection (LATCH_VEL) sont de signe opposé.

3. Configuration

Le tableau suivant détermine exactement comment se déroule la séquence de prise d’origines définie dans la section [AXIS] du fichier ini.

Tableau 1. Combinaisons des variables de la POM
Type de POM SEARCH_VEL LATCH_VEL USE_INDEX

Immediate

0

0

NON

Index-seul

0

nonzero

OUI

Contact-seul

nonzero

nonzero

NO

Contact et Index

nonzero

nonzero

OUI

Note
Toute autre combinaison produira une erreur.

3.1. Vitesse de recherche (HOME_SEARCH_VEL)

Vitesse de la phase initiale de prise d’origine, pendant la recherche du contact d’origine machine. Une valeur différente de zéro indique à LinuxCNC la présence d’un contact d’origine machine. LinuxCNC va alors commencer par vérifier si ce contact est déjà attaqué. Si oui, il le dégagera à la vitesse établie par HOME_SEARCH_VEL, la direction du dégagement sera de signe opposé à celui de HOME_SEARCH_VEL. Puis, il va revenir vers le contact en se déplaçant dans la direction spécifiée par le signe de HOME_SEARCH_VEL et à la vitesse déterminée par sa valeur absolue. Quand le contact d’origine machine est détecté, le mobile s’arrête aussi vite que possible, il y aura cependant toujours un certain dépassement dû à l’inertie et dépendant de la vitesse. Si celle-ci est trop élevée, le mobile peut dépasser suffisamment le contact pour aller attaquer un fin de course de limite d’axe, voir même aller se crasher dans une butée mécanique. À l’opposé, si HOME_SEARCH_VEL est trop basse, la prise d’origine peut durer très longtemps.

Une valeur égale à zéro indique qu’il n’y a pas de contact d’origine machine, dans ce cas, les phases de recherche de ce contact seront occultées. La valeur par défaut est zéro.

3.2. Vitesse de détection (HOME_LATCH_VEL)

Spécifie la vitesse et la direction utilisée par le mobile pendant la dernière phase de la prise d’origine, c’est la recherche précise du contact d’origine machine, si il existe et de l’emplacement de l’impulsion d’index, si elle est présente. Cette vitesse est plus lente que celle de la phase de recherche initiale, afin d’améliorer la précision. Si HOME_SEARCH_VEL et HOME_LATCH_VEL sont de mêmes signes, la phase de recherche précise s’effectuera dans le même sens que la phase de recherche initiale. Dans ce cas, le mobile dégagera d’abord le contact en sens inverse avant de revenir vers lui à la vitesse définie ici. L’acquisition de l’origine machine se fera sur la première impulsion de changement d'état du contact. Si HOME_SEARCH_VEL et HOME_LATCH_VEL sont de signes opposés, la phase de recherche précise s’effectuera dans le sens opposé à celui de la recherche initiale. Dans ce cas, LinuxCNC dégagera le contact à la vitesse définie ici. L’acquisition de l’origine machine se fera sur la première impulsion de changement d'état du contact lors de son dégagement. Si HOME_SEARCH_VEL est à zéro, signifiant qu’il n’y a pas de contact et que HOME_LATCH_VEL et différente de zéro, le mobile continuera jusqu'à la prochaine impulsion d’index, l’acquisition de l’origine machine se fera à cet position. Si HOME_SEARCH_VEL est différent de zéro et que HOME_LATCH_VEL est égale à zéro, c’est une cause d’erreur, l’opération de prise d’origine échouera. La valeur par défaut est zéro.

3.3. HOME_IGNORE_LIMITS

Peut contenir les valeurs YES ou NO. Cette variable détermine si LinuxCNC doit ignorer les fins de course de limites d’axe. Certaines machines n’utilisent pas un contact d’origine séparé, à la place, elles utilisent un des interrupteurs de fin de course comme contact d’origine. Dans ce cas, LinuxCNC doit ignorer l’activation de cette limite de course pendant la séquence de prise d’origine. La valeur par défaut de ce paramètre est NO.

3.4. HOME_USE_INDEX

Spécifie si une impulsion d’index doit être prise en compte (cas de règles de mesure ou de codeurs de positions). Si cette variable est vraie (HOME_USE_INDEX = YES), LinuxCNC fera l’acquisition de l’origine machine sur le premier front de l’impulsion d’index. Si elle est fausse (=NO), LinuxCNC fera l’acquisition de l’origine sur le premier front produit par le contact d’origine (dépendra des signes de HOME_SEARCH_VEL et HOME_LATCH_VEL). La valeur par défaut est NO.

3.5. HOME_OFFSET

Contient l’emplacement du point d’origine ou de l’impulsion d’index, en coordonnées relatives. Il peut aussi être traité comme le décalage entre le point d’origine machine et le zéro de l’axe. A la détection du point d’origine ou de l’impulsion d’origine, LinuxCNC ajuste les coordonnées de l’axe à la valeur de HOME_OFFSET. La valeur par défaut est zéro.

3.6. Position de l’origine (HOME)

C’est la position sur laquelle ira le mobile à la fin de la séquence de prise d’origine machine. Après avoir détecté le contact d’origine, avoir ajusté les coordonnées de ce point à la valeur de HOME_OFFSET, le mobile va se déplacer sur la valeur de HOME, c’est le point final de la séquence de prise d’origine. La valeur par défaut est zéro. Notez que même si ce paramètre est égal à la valeur de HOME_OFFSET, le mobile dépassera très légérement la position du point d’aquisition de l’origine machine avant de s’arrêter. Donc il y aura toujours un petit mouvement à ce moment là (sauf bien sûr si HOME_SEARCH_VEL est à zéro, et que toute la séquence de POM a été sautée). Ce mouvement final s’effectue en vitesse de déplacement rapide. Puisque l’axe est maintenant référencé, il n’y a plus de risque pour la machine, un mouvement rapide est donc la façon la plus rapide de finir la séquence de prise d’origine.

3.7. HOME_IS_SHARED

Si cet axe n’a pas un contact d’origine séparé des autres, mais plusieurs contacts câblés sur la même broche d’entrée, mettre cette valeur à 1 pour éviter de commencer la prise d’origine si un de ces contacts partagés est déjà activé. Mettez cette valeur à 0 pour permettre la prise d’origine même si un contact est déjà attaqué.

3.8. HOME_SEQUENCE

Utilisé pour définir l’ordre des séquences HOME_ALL de prise d’origine des différents axes (exemple: la POM de l’axe X ne pourra se faire qu’après celle de Z). La POM d’un axe ne pourra se faire qu’après tous les autres en ayant la valeur la plus petite de HOME_SEQUENCE et après qu’ils soient déjà tous à HOME_OFFSET. Si deux axes ont la même valeur de HOME_SEQUENCE, leurs POM s’effectueront simultanément. Si HOME_SEQUENCE est égale à -1 ou n’est pas spécifiée, l’axe ne sera pas compris dans la séquence HOME_ALL. Les valeurs de HOME_SEQUENCE débutent à 0, il ne peut pas y avoir de valeur inutilisée.

3.9. VOLATILE_HOME

Si ce paramètre est vrai, l’origine machine de cet axe sera effacée chaque fois que la machine sera mise à l’arrêt. Cette variable est appropriée pour les axes ne maintenant pas la position si le moteur est désactivé (gravité de la broche par exemple). Certains moteurs pas à pas, en particulier fonctionnant en micropas, peuvent se comporter de la sorte.

3.10. LOCKING_INDEXER

Si cet axe comporte un verrouillage d’indexeur rotatif, celui-ci sera déverrouillé avant le début de la séquence de prise d’origine, et verrouillé à la fin.