Si tu veux
Le principe:
Linuxcnc ne sait pas ou est positionné l'axe.
Il sait dans quel sens (paramètre 1) il doit mettre en mouvement l'axe pour aller chercher la fermeture du switch home.
Aussitôt que le switch est fermé ou s'il est déjà fermé, il freine et passe en marche arrière à petite vitesse (paramètre 3)
En respectant l'accélération max et donc le freinage alloué à cet axe. Cela va donc prendre une certaine distance ou il faut
impérativement que le switch reste fermé d'ou le choix d'une certaine vitesse (paramètre 2).
il passe donc en marche arrière à une vitesse très réduite et aussitôt que le switch home s'ouvre, une instruction
est activée pour attendre le top index du moteur (un top très bref, d'ou la vitesse lente) ce top index se
répète tout les tours entier du moteur. Compte tenu de l’imprécision du switch, de son hystérésis, on a tout intérêt
à positionner le switch pour qu'il s'ouvre quand le moteur à encore à peu près 1/2 tour à faire pour attendre le top index.
Il faut donc faire une marque au feutre sur la vis, correspondant au top index détecté avec halmeter (tourner à la main très lentement, c'est très bref !)
et régler le switch pour qu'il s'ouvre à 180° à peu près de la marque au feutre.
L'instruction qui capte le top index va initialisé à 0 le compteur de position de l'encodeur.
Restera à fixer un offset (paramètre 4) qui positionner la course totale de l'axe par rapport à ce zéro origine
le top index est exactement en phase avec un front d'une impulsion de comptage. Donc ton origine est
déterminé avec une reproductibilité au micron. Précision qu'il est impossible à obtenir avec un switch.
Donc le switch home dégrossit au tour près (4 mm) la position d'un top au micron près.
HOME_SEARCH_VEL paramètre 1 et 2 le plus ou le moins et la vitesse
HOME_LATCH_VEL paramètre 3 idem, le plus ou le moins et la vitesse
HOME_OFFSET paramètre 4
On aurait dans ini quelque chose comme ça:
HOME_SEQUENCE = 1
HOME_USE_INDEX = YES
HOME_SEARCH_VEL = 20
HOME_LATCH_VEL = -0.3
# recentrage de l'amplitude nominale de l'axe par rapport au top index
HOME_OFFSET = 0.0
# position de l'axe après prises d'origines
HOME = 0.0
# 0 = Vitesse rapide pour rejoindre home final, pas de distinction de sens, toujours positif.
HOME_FINAL_VEL = 0
Concernant les branchements dans le fichier.hal relatif à la prise d'origine de l'axe X
à titre d’exemple:
net home-x <= hm2_5i25.0.7i77.0.0.input-XX (
XX à choisir et doit etre à TRUE pour actif )
net home-x => axis.0.home-sw-in
net x-index-enable axis.0.index-enable <=> hm2_5i25.0.encoder.00.index-enable
net x-index-enable <=> pid.x.index-enable